GDB 是GNU的一个交互式调试工具,可以调试C、C++ 和其他几种语言编写的程序
利用 gcc -g [源文件列表] -o [调试文件.x] 来生成调试文件
生成调试文件后 gdb [调试文件.x] 进入调试。
命令类型 | GDB命令 | 含义 |
命令执行 | step(或s) | step into 执行至下一条语句,如果函数则跳转进函数 |
next (或n) | 查看各级函数的调用和参数 | |
continue(或c) | 从当前位置开始连续执行程序至下一个断点 | |
run(或r) | 直接从开始重新执行程序 | |
start | 执行至main函数的第一条指令 | |
finish | 运行到当前函数末尾 | |
变量即表达式值跟踪 | frame(或 f) [栈帧号] | 查看栈帧情况 |
info (或 i ) locals | 查看当前栈帧变量 |
|
list(或 l) | 列出往下10行的源代码 | |
list [行号] | 列出从第几行开始的源代码 |
|
list [函数名] | 列出某个函数的源代码 | |
backtrace(或bt) | step over执行下一条语句 | |
print(或 p) [表达式] | 打印变量或表达式或函数的值 | |
set [var] | 重设变量值 | |
display [变量] | 跟踪变量值 | |
watch [表达式] | 设置观察点 | |
undisplay | 曲线变量跟踪 | |
info(或 i) watchpoints | 查看设置了哪些观察点 | |
x | 打印存储器的一段内容 | |
断点设置 | break (或b) [行号] | 在第几行设置断点 |
break (或b) [函数名] | 在函数开头设置断点 | |
break..if.. | 设置条件断点 | |
disable breakpoints | 禁用断点 | |
enable breakpoints | 启用断点 | |
info(或 i)breakpoints | 查看当前设置的断点 | |
delete breakpoints | 删除断点 |