Comment on page
GDB
- make sure debug flag is enabled when compiling the program.
- e.g.,
gcc -g
- e.g.,
set(CMAKE_BUILD_TYPE RelWithDebInfo)
orcmake -DCMAKE_BUILD_TYPE=Debug
gdb <program_name>
gdb --args <program_name> arg1 arg2 arg3
(gdb) break main
add a breakpoint atmain
function(gdb) r
run the program(gdb) list
list current function (in its original programming language)(gdb) tbreak 48
add a temporary breakpoint at line 48 of current function(gdb) c
continue running the program(gdb) bt
print backtrace (of current stack)(gdb) print <var>
print a variable(gdb) info locals
print all local variables (of current stack)(gdb) x /x 0x7fffffffd9b0
exam the memory at this address using hex format(gdb) q
quit
More useful commands
(gdb) s
step into next function(gdb) n
go to next instruction(gdb) bt full
print full stack info including variables(gdb) info args
print localargc
andargv
information(gdb) whatis v
check variable type(gdb) disas
disassemble current function into assembly language(gdb) list <filename:function_name>
list a function(gdb) list <filename:line_number>
list a file around this line number(gdb) tbreak 0x000055555576bf00
add a temporary breakpoint at the address (of an instruction)(gdb) x /2xw 0xffff
print two-word length of the memory at this address using hex formatb
byte,h
half-word (2 bytes),w
word (4 bytes),g
giant word (8 bytes)x
hex,a
pointer,c
char,d
integer,u
uint,s
string,t
binary,f
float,o
octal
Fancy usage of extended gdb commands
- need to download and
source stl-views-1.0.3.gdb
; can be added to~/.gdbinit
(gdb) pvector <name>
print information about the STL vector classstd::vector<T>
(gdb) pmap <name>
print information about the STL map classstd::map<T,T>
Last modified 2yr ago