Summary of GDB commands

Starting

Running and stopping

Command Effect
quit Exit gdb
run Run program
run 1 2 3 Run program with command-line arguments
kill Stop the program
Ctrl-d Exit gdb

Breakpoints

Command Effect
break sum Set breakpoint at the entry to function sum
break *0x80483c3 Set breakpoint at address 0x80483c3
delete 1 Delete breakpoint 1
disable 1 Disable breakpoint 1
enable 1 Enable breakpoint 1
delete Delete all breakpoints
clear sum Clear any breakpoints at the entry to function sum

Execution

Command Effect
stepi Execute one assembly instruction
stepi 4 Execute four assembly instructions
nexti Like stepi, but proceed through function calls without stopping
step Execute one C statement
continue Resume executing until the next breakpoint
until 3 Continue executing until program hits breakpoint 3
finish Resume execution until current function returns
call sum(1, 2) Call sum(1,2) and print return value

Examining code

Command Effect
disas Disassemble current function
disas sum Disassemble function sum
disas 0x80483b7 Disassemble function around 0x80483b7
disas 0x80483b7 0x80483c7 Disassemble code within specified range
print /x $rip Print program counter in hex
print /d $rip Print program counter in decimal
print /t $rip Print program counter in binary

Examining data

Command Effect
print /d $rax Print contents of %rax in decimal
print /x $rax Print contents of %rax in hex
print /t $rax Print contents of %rax in binary
print /d (int) $rax Print contents of %rax in decimal after sign-extending lower 32-bits
print 0x100 Print decimal representation of 0x100
print /x 555 Print hex representation of 555
print /x ($rsp+8) Print contents of %rsp + 8 in hex
print *(int *) 0xbffff890 Print integer at address 0xbffff890
print *(int *) ($rsp+8) Print integer at address %rsp + 8
x/w 0xbffff890 Examine (4-byte) word starting at address 0xbffff890
x/w $rsp Examine (4-byte) word starting at address in %rsp
x/wd $rsp Examine (4-byte) word starting at address in %rsp in decimal
x/2w $rsp Examine two (4-byte) words starting at address in %rsp
x/2wd $rsp Examine two (4-byte) words starting at address in %rsp in decimal
x/g $rsp Examine (8-byte) word starting at address in %rsp
x/gd $rsp Examine (8-byte) word starting at address in %rsp in decimal
x/a $rsp Examine address in %rsp and print as offset from previous global symbol
x/s 0xbffff890 Examine string stored at 0xbffff890
x20b sum Examine first 20 opcode bytes of function sum
x10i sum Examine first 10 instructions of function sum

Note: the format string for the x command has the general form x/[NUM][SIZE][FORMAT] where

Useful Information

Command Effect
backtrace Print the current address and stack backtrace
where Print the current address and stack backtrace
info program Print current status of the program
info functions Print functions in program
info stack Print backtrace of the stack
info frame Print information about the current stack frame
info registers Print registers and their contents
info breakpoints Print status of user-settable breakpoints
help Get help about gdb