Mail Archives: djgpp/1998/08/04/18:41:31
Cephaler wrote:
>
> Eeek I need help in a big way on this. It seems my less-than-standard asm
> code and I have screwed up something with djgpp. A program yesterday and
> ran fine yesterday won't run today, after I ran a couple odd looking asm
> programs. No extra tsr's...no viruses, no weird stuff going on... I don't
> know what to make of this:
>
> 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
>
> I've never gotten that before...did I screw something up in my bios? Even
> after restarting the problem is still there. Help would be greatly
> appreciated
It means what it says-- an invalid opcode was executed (aka ILLegal
instruction). First, build the debugging version of Allegro as its docs
describe. Rebuild your program with it, run it again, and symify the
traceback. Then look at the assembler for that location, and see what
sort of code it is. It may be you're doing something like executing an
RDTSC on a 486, or perhaps a pointer is messed and you're executing
data. It's also suspicious that the es register is invalid; something
messed it up along the way. Watch for that as well.
--
Nate Eldredge
nate AT cartsys DOT com
- Raw text -