Dump the postmortem state of a program (QNX)
dumper [-d path] [-m] [-n] [-P] [-p pid] [-s size[G|M|K]] [-t] [-v] [-w] [-z level] &
where num starts at 1 and increases until the filename doesn't already exist.
The dumper utility runs in the background and provides a postmortem dump service for all processes. Whenever a program terminates abnormally, a dump of the current state of the program is written to disk. The dump filename is the same as the program name with a .core extension. For example, if the program name is experiment, the dump is written to experiment.core in your home directory.
|On a QNX Momentics system, dumper starts with dumper -d /var/dumps.|
You can use the -d option to force all dumps into a directory other than /var/dumps.
|Dump files can be large, so make sure the destination filesystem has lots of space.|
The -p option lets you get a dump immediately for a particular process. If you specify -p, dumper doesn't run in the background, but exits right away.
You can use a debugger such as gdb to examine a dump file:
gdb program_binary program_core
gdb /usr/photon/bin/pterm /var/dumps/pterm.core
A program may terminate in one of two ways: it may exit cleanly under its own control, returning an exit status, or it may be forcibly terminated by the receipt of a signal that it isn't prepared to handle. In the latter case, dumper writes a dump file for the following set of signals:
|SIGABRT||Program-called abort function|
|SIGFPE||Floating-point error or division by zero|
|SIGILL||Illegal instruction executed|
|SIGSYS||Bad argument to a system call|
|SIGTRAP||Trace trap (not reset when caught)|
|SIGXCPU||Exceeded the CPU limit|
|SIGXFSZ||Exceeded the file size limit|
You can force the dump of a running program by setting one of the preceding signals, assuming that the program isn't masking or handling the signal itself. For example, to force a dump using the kill command and a process ID (pid):
kill -SIGABRT pid
To force a dump using the slay utility and the process name:
slay -s SIGABRT process_name
Start dumper, with dump files to be written to the default directory:
Start dumper, with dump files to be placed in the directory /home/dumps:
dumper -d /home/dumps &
The dumper utility normally doesn't terminate. However, it may terminate if it encounters an error on startup (for instance, if it wasn't run by root) or if it receives a signal.
coreinfo, gdb, kill, slay