GDB的功能 |
1.启动被调试程序 |
2.让被调试的程序在指定位置停住 |
3.当程序停住的时候,可以检查程序状态,变量值 |
用法:
gcc -g test.c -o test
gdb
命令:
- 查看源代码
list/l 空 or 行号 or 函数名
- 直接enter,重复执行上一命令
- run/r 运行至下一个断点停下来 or 如果没有断点,直接运行结束
- start 运行进入主函数(main())停下来
- .断点
1) 设置断点
break/b----行号 or 函数名 [if condition 命中条件]
2) info break/b 查看断点信息
3) 调试
next/n 单步执行,不进入函数
step/s 单步执行,进入函数
- continue/c 继续执行,在下一断点处停下
- finish 结束当前函数的运行
- 清除断点
清除所有断点 clear
清除某个模块的断点 clear filename
清除某个函数中的断点 clear function
清除某行断点 clear 行号
delete 断点编号
- disable 断点编号 使某个断点失效
- enable 断点编号 使某个断点有效
- display 表达式 每当程序运行至断点都会显示
- watch 表达式 设置观察点
- whatis 表达式 显示某个表达式的数据类型
- 查看变量 or表达式的值
print/p 表达式 显示某个表达式的值
p *array@len 显示一个动态数组array
输出格式:p/x i
x |
16进制 |
d |
10进制 |
u |
无符号19进制 |
o |
8进制 |
t |
2进制 |
a |
16进制 |
c |
字符表示 |
f |
浮点表示 |
- 堆栈相关命令
backtrace/bt 查看堆栈情况
info register 查看寄存器(除了浮点寄存器)
info all register 查看所有的寄存器
info stack 查看堆栈使用情况
info args 查看函数的参数以及其值
info locals 查看函数的所有局部变量
info catch 查看函数抛出的异常
- 调试运行环境相关命令
set args arg1 arg2 设置运行参数
show args 显示运行参数
set width num 设置GDB显示行宽
return <返回值> 改变程序流程,直接结束当前函数并指定值返回