Coredump Message Meanings - Summary - (nf)
utzoo!decvax!harpo!npoiv!npois!houxm!ihnp4!ihldt!ll1!otuxa!nwuxc!inuxc!pur-ee!davy
utzoo!decvax!harpo!npoiv!npois!houxm!ihnp4!ihldt!ll1!otuxa!nwuxc!inuxc!pur-ee!davy
Mon Dec 6 18:28:04 AEST 1982
#N:pur-ee:15500007:000:3266
pur-ee!davy Dec 6 11:05:00 1982
This is the information which I have received in response to
my query about the meanings of the various core dump messages given by
the shell. I have summarized much of the information in order to keep
this article reasonably short (well, 100 lines is shorter than 300....).
------------------
Bus Error
- Types of arguments and parameters don't match.
- I/O problems - reading past EOF, reading a closed
file, bad file pointers, etc.
[This refers to stdio only, I think.... --Dave]
- Arrays improperly dimensioned. Eg., attempting to
access a word starting at an odd address.
- Referencing a non-existent bus device.
- NULL or unitialized pointer, subscript out of range.
Memory Fault
- Subscripting arrays past the memory allocation for
your program.
- NULL or unitialized pointer, subscript out of range.
- Attempts to reference data outside valid address space
- Parity errors in address space
- Recursion (try making your own routines "read" and "write"
and then call "scanf" or "printf" and watch what happens).
IOT Trap
- Execution of IOT (I/O Trap) instruction; also used by the
"abort" routine (PDP-11's only).
EMT Trap
- Emulator Trap Instruction (PDP-11's).
Trace/BPT Trap
- Execution of the BPT instruction (PDP-11's)
- Trace bit set in Processor Status (long)Word
- Trying to tell the program to go to an address that
doesn't exist.
- "Wanton destruction caused execution of data or trashing
of instructions."
Floating Exception
- Invalid floating point operation:
- overflow
- underflow
- divide by zero
- log of negative number
- float-to-int conversion overflow
Segmentation Fault
- Subscript out of range.
- Handing "printf", etc. a string which is not NULL
terminated.
Illegal Instruction
- Attempt to execute a priviledged instruction, such
as "halt".
- Execution of nonsense insstruction (e.g., jump to a
register).
- Forgot -f flag to cc on PDP-11 without floating point
hardware.
----- Special Note: John Bruner (pur-ee!bruner) also had this
to say about Illegal Instruction:
"On the VAXes the 'abort' routine executes a 'halt'
and blows away the program with an illegal instruction.
Note that SIGTRAP (trace trap) and SIGILL (illegal
instruction trap) are not reset when caught. Thus, a
generalized trap handler such as
sig(s)
int s;
{
fprintf(stderr, "Fatal signal %d\n", sig);
abort();
}
will (on the VAX) recursively call 'abort' which will
attempt to execute a 'halt' [illegal] and trap to 'sig'
which will call 'abort'... until you either kill it
with a signal it doesn't catch (e.g. SIGKILL=9) or it
runs out of stack space (a LONG time on the VAX)."
------------------
In all, I got 5 responses with information about the messages,
and three responses asking for a copy of the summary (to those of you
who asked, I have sent you each a copy via mail). Thanks go to all
who responded: John Bruner (pur-ee!bruner), arizona!tom, ihuxw!thor,
Bob Van Valzah (tpdcvax!bobvan), Geoff Collyer (utcsstat!geoff).
--Dave Curry
pur-ee!davy
More information about the Comp.lang.c
mailing list