Mail Archives: djgpp/1999/09/09/22:50:12
Here is the registers' dump from symify:
Exiting due to signal SIGILL
Invalid Opcode at eip=00001600
eax=00000001 ebx=00008440 ecx=00000000 edx=00000000 esi=00000054
edi=000100f0
ebp=2a2e2a5c esp=0008f678 program=C:\JOSH_S~1\DJGPP\BIN\AUDIT.EXE
cs: sel=00a7 base=843ff000 limit=0009ffff
ds: sel=00af base=843ff000 limit=0009ffff
es: sel=00af base=843ff000 limit=0009ffff
fs: sel=0087 base=00007040 limit=0000ffff
gs: sel=00bf base=00000000 limit=0010ffff
ss: sel=00af base=843ff000 limit=0009ffff
App stack: [000900f0..000100f0] Exceptn stack: [0000ffd8..0000e098]
Call frame traceback EIPs:
0x00001600 _scan__FPc+112, line 43 of audit.cpp
Josh
Eli Zaretskii wrote:
> On Wed, 8 Sep 1999, Josh Reed wrote:
>
> > I have a program that I compiled with DJGPP that dies
> > half-way through execution.
>
> Does it print registers' dump and call frame traceback? If so, please
> post them here (after running SYMIFY, see section 9.2 of the FAQ for
> details).
>
> > I used gdb on it and here is
> > what it said:
> > Program recieved signal SIGILL, Illegal instruction.
> > 0x1600 in scan (path=Cannot access memory at address
> > 0x2a2e2a64.) at audit.cpp:43
> >
> > Line 43 in Audit.cpp:
> > if (((DTA.ff_attrib >= 16) && (DTA.ff_attrib <= 31)) ||
> > (DTA.ff_attrib >= 48))
>
> Seems like your memory is trashed. See that "Cannot access memory"
> message from GDB? It means a garbled pointer, and the address it
> prints is surely garbled. Try to find out how come the variable
> `path' gets garbled, and you might unlock this problem.
>
> Some of the techniques for debugging these problems are described in
> section 12.2 of the FAQ; be sure to read that.
- Raw text -