Re: illegal instruction

David E. Fox (dfox@belvdere.vip.best.com)
Mon, 17 Aug 1998 21:03:12 -0700


On Tue, 18 Aug 1998, Aaron Walker wrote:

>... (usual gdb intro)
>Program terminated with signal 4, Illegal Instruction.
>find_solib: Can't read pathname for load map: Input/output error
>
>#0 0xbffffa5a in ?? ()

If you possess the source for it, recompile it with -g. This will let
you see the source where it dumped core. If it was inside a library,
you wouldn't be able to see its source lest you had it also compiled
with -g.

You probably also want to use 'bt' in gdb to get an idea what functions
were called and roughly how far the program got before it died.


>Does anyone know what an "Illegal Instruction" is and what causes it?

Well, an illegal instruction is just that -- illegal. (Penalties for
executing one are usually not too harsh) :).

It's an opcode sequence that isn't defined as such. Since gcc wouldn't
(we hope) emit such an opcode sequence, the most likely cause is that
some pointer got wild and somehow the instruction pointer got
misplaced, and started executing garbage, or data, rather than
instructions.

Lots of things can cause this -- an improperly initialized function
pointer, for instance.

>Aaron
--
------------------------------------------------------------------------
David E. Fox                 Tax              Thanks for letting me
dfox@belvdere.vip.best.com   the              change magnetic patterns
root@belvedere.sbay.org      churches         on your hard disk.
-----------------------------------------------------------------------


-- 
  PLEASE read the Red Hat FAQ, Tips, Errata and the MAILING LIST ARCHIVES!
http://www.redhat.com/RedHat-FAQ /RedHat-Errata /RedHat-Tips /mailing-lists
         To unsubscribe: mail redhat-list-request@redhat.com with 
                       "unsubscribe" as the Subject.