gdb Quick Reference

From Wikistix

Running

command abbreviation action
step s step to next source line, possibly into functions
next n step over any functions to next source line
finish fin step out of the current stack frame/function
stepi step to next instruction, stepping into subroutine calls
nexti step to next instruction, stepping over subroutine calls

Examining state

command abbreviation action
info registers i r Dump out common registers
info line 0x888 i li Show source around the line, file:line or address
x/20i 0x888 Disassemble instructions at the given address

Breakpoints

command abbreviation action
info breakpoints i b display breakpoints
delete <n> d <n> delete breakpoint numbered <n>
breakpoint <n> b <n> breakpoint at <n>, which may be a symbol, line number or address

Dumping output to a file

(gdb) set pagination off
(gdb) set logging file /tmp/ls.malloc.log
(gdb) set logging overwrite
(gdb) set logging redirect on
(gdb) set logging on
Redirecting output to /tmp/ls.malloc.log.

Examples

Dump stack on function call

Dump thread stack each and every time a specific function is called, writing to a log.

ksh$ gdb /bin/ls
GNU gdb (GDB) 7.7.1
...
(gdb) b malloc
Breakpoint 1 at 0x401360
(gdb) commands
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
>bt
>c
>end
(gdb) set pagination off
(gdb) set logging file /tmp/ls.malloc.log
(gdb) set logging overwrite
(gdb) set logging redirect on
(gdb) set logging on
Redirecting output to /tmp/ls.malloc.log.
(gdb) run
...
(gdb) quit
ksh$ head -10 /tmp/ls.malloc.log
Starting program: /bin/ls

Breakpoint 1, 0x00007f7ff70b2b4a in malloc () from /lib/libc.so.12
#0  0x00007f7ff70b2b4a in malloc () from /lib/libc.so.12
#1  0x00007f7ff70f4871 in __setlocale () from /lib/libc.so.12
#2  0x00000000004023fa in ls_main ()
#3  0x0000000000401715 in ___start ()
#4  0x00007f7ff7ffa000 in ?? ()
#5  0x0000000000000001 in ?? ()
#6  0x00007f7ffffffca0 in ?? ()
#7  0x0000000000000000 in ?? ()

See Also

External