[Previous] [Contents] [Index] [Next]


Dump the postmortem state of a program (QNX)


dumper [-d path] [-m] [-n] [-p pid] [-v] &


-d path
The name of the directory in which postmortem dump files are written. The default is the user's home directory.
Don't dump memory.
Save sequential dumps. Each dump is saved in a file whose name is of the form:


where num starts at 1 and increases until the filename doesn't already exist.

-p pid
Save a dump file for this process immediately, and then exit dumper.
Verbose output.


Note: On a Momentics system, dumper starts with dumper -d /var/dumps.

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 the user's home directory.

You can use the -d option to force all dumps into a single directory rather than into /var/dumps.

Note: 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 -p is specified, 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 

For example:

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 it isn't prepared to handle. In the latter case, dumper writes a dump file for the following set of signals:

Signal Description
SIGABRT Program-called abort function
SIGBUS Parity error
SIGEMT EMT instruction
SIGFPE Floating-point error or division by zero
SIGILL Illegal instruction executed
SIGSEGV Segmentation violation
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:

dumper &

Start dumper, with dump files to be placed in the directory /home/dumps:

dumper -d /home/dumps &

Exit status:

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.

A signal was received and dumper shut down successfully.
An error was encountered on startup (not run by root or bad command-line options).

See also:

coreinfo, gdb, kill, slay

[Previous] [Contents] [Index] [Next]