Message-Id: <199809061936.PAA14668@delorie.com> Comments: Authenticated sender is From: "George Foot" To: Eli Zaretskii Date: Sun, 6 Sep 1998 20:34:24 +0000 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Subject: Re: help! SIGILL?!? Reply-to: mert0407 AT sable DOT ox DOT ac DOT uk CC: djgpp AT delorie DOT com Precedence: bulk On 6 Sep 98 at 12:45, Eli Zaretskii wrote: > On 4 Aug 1998, Cephaler wrote: > > > Shutting down Allegro > > Exiting due to signal SIGILL <------------ Hmmmmmmmm > > Invalid Opcode at eip=00092b08 > > eax=00000000 ebx=000900af ecx=000000a0 edx=00000000 esi=00000020 > > edi=000190a0 > > ebp=0008d898 esp=0008d886 program=C:\NICK\DJGPP\GAME\TEST.EXE > > cs: sel=00a7 base=82739000 limit=0019ffff > > ds: sel=00af base=82739000 limit=0019ffff > > es: sel=00cf invalid > > fs: sel=00bf base=00000000 limit=ffffffff > > gs: sel=00bf base=00000000 limit=ffffffff > > ss: sel=00af base=82739000 limit=0019ffff > > > > Call frame traceback EIPs: > > 0x00092b08 > > Put quite simply, this says that your program tried to execute an > opcode at the address 0x92b08 which is not a valid x86 instruction. > In addition, you seem to have set the ES register to an invalid > selector. Also, your stack is below the EIP value where it crashes, > which should NEVER happen. Allegro sometimes creates executable code at run-time (specifically, compiled sprites and stretched blits are normally performed in this way). This code will be in the heap, so the EIP value when executing it will be greater than ESP. This might also explain the ES value (since the stretchers, at least, use `stosb' instructions). -- george DOT foot AT merton DOT oxford DOT ac DOT uk