Penguin
Note: You are viewing an old revision of this page. View the current version.

Under Unix style operating systems, when a program faults in some way (SIGSEGV,SIGABRT,etc...) and permissions allow (the PWD? is writable, ulimit(1)'s permit), then the kernel will write out a copy of the program's address space, as well as the state of all the registers and any other state that's required to a file, usually called "core" or "core.programname".

Programs such as gdb(1) can then parse these core files and give you some indication about /why/ the program crashed.

strings core | grep ^_=

or

file core

will usually tell you what program caused the core file. You can then use

gdb program core

gdb has several commands you can use to inspect the core file, however the most useful of them is

(gdb) bt full

this will usually display enough information that a programmer can figure out why the program crashed. When emailing a bug report to a programmer about a program that crashed, including a full backtrace (as per the previous command) will greatly improve the chances that the programmer will be able to find and fix the bug you encountered.

See the DeBugging page for more information and hints about gdb.