Others

There are a number of other debugger features which are used less frequently, but are nevertheless handy.

Kernel Signals

Kernel signals are a way of signaling between processes in Linux. The list of signals available for a program can be displayed by choosing the menu item View->Kernel Signals. A window will open which lists all of the signals available in the system along with a brief description of each signal.

Figure 11. Kernel Signals window

There are three columns which specify what to do when the signal is received:

  1. Stop — this tells the debugger whether to stop the program execution (and return control) when the program receives this signal.

  2. Print — this tells the debugger whether to display the received signal.

  3. Pass — this tells the debugger whether to pass the signal to the program.

Changing behaviour on signals

To change the way debugger behaves when a particular signal is received, select the signal in the list. Right-click to open the Operation menu. Choose Modify Signal. This will open a dialog. Set the three behaviours and click OK to commit the change.

Figure 12. Modify Kernel Signal dialog

Sending the signal to the program

To explicitly sent the signal to the program being debugged, select the signal in the given list. Right-click to open the Operation menu. Choose the menu item Send to process. A confirmation dialog will appear. Click OK to confirm and send the signal to the program.

Updating the signal list

Choose the menu item Update from the Operation menu (right-click in the Kernal Signals window to open) to refresh the Kernel Signals window.

CPU registers

It is possible to examine the contents of the internal registers of the CPU (microprocessor). Choose the menu item View->Registers. A window listing all of the available registers in the microprocessor and their corrosponding contents will appear.

Figure 13. CPU Registers window

Dynamically loaded Libraries

To obtain a list of the dynamic libraries used by the program, choose the menu item View->Shared Libraries. This will bring open a window which will list all the shared libraries the program has loaded and their locations in the memory. It also shows whether the symbol table is loaded or not (Yes/No).

Figure 14. Shared Libraries window

Interrupting the program

While the program is running and has control, no debugging tasks can be performed. To obtain control while the program is running, choose the menu item Debug->Interrupt Program. This will interrupt the program and return control to the debugger.

For interruption to work properly, set the debugger behaviour for the interrupt signal (SIGINT) to the value [ Stop:Yes, Print:Yes, Pass:No ]. This is the default value.