Date: Thu, 24 Jun 1999 17:24:23 +0300 (IDT) From: Eli Zaretskii X-Sender: eliz AT is To: Manni Heumann cc: djgpp AT delorie DOT com, Robert Hoehne Subject: Re: ld crashes (sometimes) In-Reply-To: <37712061.0@news.uni-bielefeld.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk 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 > >