启动相关
- 启动某个执行程序的调试
gdb file - 运行
run [arg1 arg2...]
断点相关
- 添加断点
b 13 | b func_name | b test.c:19 | b TestClass::testFunc(int) - 在某个具体地址
b * 0xffffffab注意*号 - 添加零时断点
tbreak - 查看断点
info breakpoints - 去掉断点
disable idid是Info breakpoints里面的标号。
运行相关
- 运行
r | run - 下一步
step | s - 下一行
next | n, 不会进入函数
状态查看相关
- 查看某个变量
print x - 查看调用栈
backtrace - 查看frame信息
info frame, 包含参数,变量,重要的寄存器。 - 查看寄存器
info register - 查看变量
info local, 指局部变量 - 查看参数
info args - 查看汇编代码(以main为例)
disassemble main - 查看某个函数的地址(以main为例)
info address main
内存查看
基本格式: x/ [n][f][u] addr
u是单元大小, n是几个单元, f是格式。
格式类型有:
- x 按十六进制格式显示变量。
- d 按十进制格式显示变量。
- u 按十六进制格式显示无符号整型。
- o 按八进制格式显示变量。
- t 按二进制格式显示变量。
- a 按十六进制格式显示变量。
- c 按字符格式显示变量。
- f 按浮点数格式显示变量。
- s按字符串显示变量
单元大小类型有:
- b表示单字节。
- h表示双字节。
- w表示四字节。
- g表示八字节。
根据自己需要组合即可,比如查看数组 int arr[] = {1,2,3};
(gdb) x/3dw arr
本文档详细介绍了GDB调试器的使用,包括如何启动调试、设置断点、运行程序、查看程序状态如变量、调用栈、寄存器,以及如何查看内存和汇编代码。通过实例演示了各种操作,如添加临时断点、查看局部变量、调用栈信息以及内存块的十六进制显示等。
1632

被折叠的 条评论
为什么被折叠?



