- gdb(GNU Debugger)
- 设置断点
- 监视,修改变量
- 单步执行
- 查看堆栈
- 利用gdb调试的前提
- 在程序的编译过程中使用-g选项 gcc -g -o test test.c
- 启动gdb gdb/gdb filename(filename是可执行文件)
- gdb基本命令用途
- 文件操作 file quit shell
- 显示源程序 list show
- 控制程序的执行 break
- 程序的运行
- 查看运行时数据 print display
- 显示函数调用堆栈的信息 where/bt
- 文件操作
- file:装入调试程序 file filename
- quit:退出gdb
- shell:进入shell环境,执行shell命令 退出shell:exit
- 显示源程序
list:
- list:没有参数,显示从当前行开始10行
- list n:显示从n行开始10行
- list start,end:显示从start到end行的代码
- list -:显示当前行之前的10行
- list +:显示当前行之后的10行
- list start,end 显示从start到end行的代码
- list main:显示函数main
show:
- show listsize 查看显示的行数
- set listsize 5 设置显示的行数
- 控制程序的执行
break:
- break 10:在第10行设置断点
- break main:在函数入口处设置断点
- break main if i == 10
- info break/info break 1:查看断点
- delete/delete 1:删除所有断点/删除一个断点
- 程序的运行
- run命令:运行程序,执行到断点处,或者直到程序结束
- continue命令:
- kill命令:程序从当前位置开始,执行到断点处,或者直到程序结束
- next命令:单步执行,不进入函数内部
- step命令:单步执行,不进入函数内部
- 查看运行时数据
print命令:显示变量/表达式的值
- print i
- print i*j
- print array[3]@5:显示数组的值
display命令:预先设置一些要显示的表达式
- info display:显示当前设置的表达式的清单
- delete display:取消对设置的表达式的自动显示功能
- 显示函数调用堆栈的信息
- breaktrace(bt)/where:显示函数调用的层次关系
- up[n]:向上移动层栈帧
- down[n]:向下移动层栈帧