ChorusOS 5.0 Debugging Guide

Analyzing a Process Dump

Process dumps enable you to examine processes post-mortem. A process dump is triggered when:

A core file is generated in the root_dir/tmp directory, by default, and contains information about each of the process's threads and all memory regions associated with the process. Only regions attached to the actor are dumped. Supervisor regions not bound to the process are not dumped.

The iom.maxcoresize tunable specifies the maximum size of a core file. If iom.maxcoresize is set to 0, no core dump can be performed.

The RDBD daemon is used to debug application core dumps. rdbd(1CC) is similar to rdbc(1CC), the remote debugging daemon. However, RDBD runs on the host, whereas RDBC runs on a target. Execution commands (step, cont, next) are also not available in RDBD.

The debugging tool communicates with RDBD on the host. RDBD is responsible for reading the core file generated by the process dump.

Configuring and Using RDBD

The RDBD daemon enables the GDB debugging tool to debug core dumps. It is possible to run several RDBD servers on the same host, provided that each one uses a different communication slot number. The slot number must be used as a port number when configuring the debugging tool to use the debug server.

When you start RDBD, you must specify the exact path to the ChorusOS core dump directory manually, as follows:


$  rdbd [options] core_directory

The following options are available:

-fast-start

Do not check for another RDBD daemon already using the selected communication slot. This significantly accelerates startup.

-force-slot

If another RDBD daemon is already using a given slot, force the new RDBD daemon to steal the slot.

-slot number

Creates a communication slot number instead of using the default 0.

core_directory

Directory containing the core files generated by pdump or generated due to an exception.

RDBD can be run in the background because it does not require access to a terminal.