www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/09/06/15:36:45

Message-Id: <199809061936.PAA14668@delorie.com>
Comments: Authenticated sender is <mert0407 AT sable DOT ox DOT ac DOT uk>
From: "George Foot" <george DOT foot AT merton DOT oxford DOT ac DOT uk>
To: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
Date: Sun, 6 Sep 1998 20:34:24 +0000
MIME-Version: 1.0
Subject: Re: help! SIGILL?!?
Reply-to: mert0407 AT sable DOT ox DOT ac DOT uk
CC: djgpp AT delorie DOT com

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

- Raw text -


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