调试流程:(使用gcc编译时加上 -g -Wall选项)
gdb attach pid
info b
b filename:linenum / b filename:functionname
c
p variablename
ctrl + c
delete
detach
常用命令:
启动:gdb executable或者gdb -> file executable
列出源码:l(list) line_number
设置断点:b(break) line_number, b(break) function_name, b(break) +offset, break ... if <condition>
查看断点:info b
维护停止点:delete, clear, disable, enable
运行:r(run)
单步:n(next)
单步进入:s(step)
继续执行:c(continue)
退出函数:finish
查看变量类型:whatis variable_name
打印变量:p(print) variable_name
查看堆栈:bt(backtrace), f(frame)<n> 其中n为栈中层的编号
退出gdb:q(quit)
查看帮助:help(实际列出的是gdb的命令种类)
直接回车表示重复上一次命令
参考:用GDB调试程序