GDB

Table of Contents

1 Using with emacs

  • M-x gdb
  • M-x gdb-many-windows
  • M-x gdb-restore-windows

In the breakpoints buffer, D to remove one.

C-x C-a C-b
gud-break
C-x C-a C-d
gud-remove

When program stops at some point (with triangle prefix), b will set breakpoint. So in gud terminal, type b if (xxx) will set conditional breakpoints.

2 Commands

next
next instruction
step
into a procedure
finish
finish current procedure
until
until a line is reached. Can be used to jump out of a loop

3 Core Dump

The "core" may not be there. On ubuntu, this is possibly because you have a core file size ulimit of 0.

Use this to enable it:

ulimit -c unlimited

The core will be dumped to ./core file.

Use gdb to analyze the core:

gdb /path/to/executable ./core

print the stack trace:

bt
bt full

4 Batch mode

It is useful to run gdb in batch mode instead of interactively.

gdb -batch -x commands.gdb /path/to/executable [/path/to/core/dump/file]