Widgets - GDB Commander

GDB commander is a GUI front-end for the GNU debugger. It’s only available under Linux.

It allows to debug the project output (if it’s an application), runnable modules, or a custom executable.

Breakpoints

The breakpoints are handled by the editor. Click the gutter to add or to remove a breakpoint. After a break, the following icons may be displayed in the gutter:

Top panel

Call Stack

This page displays the current call stack, from most recent (top) to older (bottom). When the debugger is paused it is possible to select a particular frame by double-click or using the context menu. This option is for example useful to handle automatic break on D exceptions. D exceptions are detected using a call to a runtime function but the place where and Exception is thrown is at least 2 frames lower.

Target options

This page allows to edit the options passed to the debugger target (also called the inferior).

Canter panel

Assembler

Disassembly of the current function. Using the context menu and when the debugger is paused it is possible to resume execution until a particular instruction is reached.

CPU inspector

This page shows the content of the CPU registers. Each value can be modified. Note that for now SSE registers are not displayed.

Toolbar

Custom commands

The field at the bottom allows to pass custom commands to GDB. A custom command can include a symbol string.

You may pass command with the standard CLI syntax (e.g show, set, etc), however since GDB is launched with the option that activates the machine interface (MI) the standard commands are not guaranteed to work properly. The option showRawMiOutput must be activated in order to get the GDB answer for a custom command in the messages.

Learn more about the commands and the MI syntax in the official manual.

Note that even if in most of the cases the results of a custom command are displayed in the messages a special processing may happen:

Target input stream

The field at the bottom is also used to pass new lines to the target standard input. To differentiate a custom command from an input line, use the > (greater than) symbol. The text following the symbol is written to the input stream, with an implicit new line character at the end.

If not text follows > then the inferir stdin stream get closed.

Note that if the option queryInput is used then the input stream is not available anymore for write.

Options