Mail Archives: djgpp/1999/06/24/10:27:49
On Wed, 23 Jun 1999, Manni Heumann wrote:
> Every now and then ld will crash, when I try to build a program. If I run it
> again, usually all is well again, without any changes in the source code or
> elsewhere.
Are there any differences between the two runs? For example, if ld is
invoked from Make, I suppose the second time there would be much less
program invocations before it. Is that the case?
Also, please always tell on what OS did that happen. The crash message
seems to suggest that it was on Windows, but that's a guess, and I cannot
possibly guess the version of Windows.
Btw, the traceback (reproduced below) is somewhat strange: it has too few
levels in the stack dump. In other words, the last line doesn't seem to
be in the startup code, like it should be, for no good reason, since the
total number of printed EIPs doesn't exceed 10 (which was the maximum
number of EIPs printed in v2.01, with which this ld.exe seems to be
compiled). Do you have any idea why did that happen? Normally, I'd
suspect some stack-related calamity in such cases.
Also, if somebody cares, the immediate cause for the crash is the bogus
pointer in the EBX register: it is clearly beyond the DS limit. How that
value wound up in EBX in the first place, is anybody's guess.
> General Protection Fault at eip=00008ea7
> eax=00000001 ebx=6ac78902 ecx=00000002 edx=00008e98 esi=000009a3 edi=00000000
> ebp=000934f8 esp=000934ac program=d:/djgpp/bin/ld.exe
> cs: sel=01b7 base=829d7000 limit=0039ffff
> ds: sel=01bf base=829d7000 limit=0039ffff
> es: sel=01bf base=829d7000 limit=0039ffff
> fs: sel=0197 base=00024d50 limit=0000ffff
> gs: sel=01df base=00000000 limit=000fffff
> ss: sel=01bf base=829d7000 limit=0039ffff
>
> Call frame traceback EIPs:
> 0x00008ea7
> 0x00015521
> 0x000122a5
> 0x00008e60
> 0x00009409
> 0x0000acba
> 0x0002eeba
> collect2: ld returned 255 exit status
>
>
> Thanks for taking the time,
>
>
> --
>
> Manni
>
>
- Raw text -