delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/09/14/17:09:01

From: Thomas Demmer <demmer AT LSTM DOT Ruhr-UNI-Bochum DOT De>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: SIGSEGV error meanings??
Date: Wed, 10 Sep 1997 14:58:53 +0200
Organization: Lehrstuhl fuer Stroemungsmechanik
Lines: 64
Message-ID: <3416998C.5B932037@LSTM.Ruhr-UNI-Bochum.De>
References: <$pUtJBAbyoF0EwFX AT jenkinsdavid DOT demon DOT co DOT uk>
NNTP-Posting-Host: c64.lstm.ruhr-uni-bochum.de
Mime-Version: 1.0
CC: me AT jenkinsdavid DOT demon DOT co DOT uk
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

David Jenkins wrote:
> 
> I sent a copy of my game to a friend which keeps crashing on his system
> but never mine. He sent me the SIGSEGV error thing, I read the FAQ
> (Aren't I a good little boy?? :) and ran symify on the error, which
> looked something like this,
> 
> G:\Hoveroids\code\Game>symify -i bug1.txt hover.exe
> Shutting down Allegro
> Exiting due to signal SIGSEGV
> Page fault at eip=000056ba, error=0004
> eax=69696b6a ebx=0002a7e4 ecx=00b68004 edx=00000000 esi=69696b6a
> edi=0089d470
> ebp=ff465f20 esp=ff465ef8 program=C:\MYFILES\TEMP\HOVER.EXE
> cs: sel=00a7  base=845b6000  limit=ff465fff
> ds: sel=00af  base=845b6000  limit=ff465fff
> es: sel=00af  base=845b6000  limit=ff465fff
> fs: sel=00af  base=845b6000  limit=ff465fff
> gs: sel=00c7  base=00000000  limit=ffffffff
> ss: sel=00af  base=845b6000  limit=ff465fff
> 
> Call frame traceback EIPs:
>   0x000056ba __getpixel+30
>   0x000036be _make_hover_sprites+174, line 300 of init.c
>   0x00002de7 _init_display+259, line 72 of init.c
>   0x00003cf2 _main+82, line 41 of main.c
>   0x0003456e ___crt1_startup+138
> 
> the , line 300 of init.c are pretty straightforward.
> BUT what's the +174 in _make_hover_sprites+174 mean??
> 
> AND What's this ___crt1_startup+138, and where did it come from?? Is it
> something in the startup code or something??
What you see is the stack frame:
The starup code __crt1_startup, calls main, the IP is 
138 bytes after the the startup entry point. main() calls
 init_display() in line 41 of the source code, 82 bytes
after main's entry point, and so on.

The reason why it keeps crashing is that it is somewhere
broken, writing to an uninitialized pointer, your friend
runs it on plain DOS or another smarter DPMI host, you
run it under Win95, which doesn't catch SIGSEGVs. Check
out what you do in init.c, line 300. This ones probably
the culprit.


OK, the last one was just a wild guess from the way you
type your prompt...

-- 
Ciao
Tom

*************************************************************
* Thomas Demmer                                             *
* Lehrstuhl fuer Stroemungsmechanik                         *
* Ruhr-Uni-Bochum                                           *
* Universitaetsstr. 150                                     *
* D-44780  Bochum                                           *
* Tel: +49 234 700 6434                                     *
* Fax: +49 234 709 4162                                     *
* http://www.lstm.ruhr-uni-bochum.de/~demmer                *
*************************************************************

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019