GNU工具集中的调试器是gdb,gdb是一个交互式工具,工作在字符模式。
一、gdb可完成如下调试任务:
1、设置断点
2、监视程序变量的值
3、程序的单步执行
4、显示/修改变量的值
5、显示/修改寄存器
6、查看程序的堆栈情况
7、远程调试
二、gdb常用命令:
1、l(list) 列出正在执行的程序的原文件内容
2、r(run) 运行程序
3、b(breakpoint) 设置断点。格式:b+行号/函数名
4、info + breakpoint 查看断点信息
5、clear + 行号 清除断点
6、c(continue) 从断点继续执行程序
7、s(step) 单步运行语句,step into进入函数
8、n(next) 单步运行语句,step over越过函数
9、finish 跳出函数,step out
10、变量的检查和赋值:
whatis:显示变量、数组或函数的类型
ptype: 比whatis的功能更强,可以提供一个结构的定义
set + variable:将值赋予变量
print: 显示一个变量的值或赋值
11、display/undisplay + 变量/表达式 每次程序停止运行时都 显示/取消显示 变量或表达式的值
12、call+函数名 调用和执行一个函数
13、delete/disable/enable + breakpoint + 断点号 删除/禁止/允许一个断点。如果不带编号参数,将删除所有的断点
14、watch 在程序中设置一个监测点(即数据断点)
15、kill 终止正被调试的程序
16、q(quit) 退出gdb
注意:gdb + 可执行程序名->启动GDB。直接回车表示重复上一次命令。