启动相关
- 启动某个执行程序的调试
gdb file
- 运行
run [arg1 arg2...]
断点相关
- 添加断点
b 13 | b func_name | b test.c:19 | b TestClass::testFunc(int)
- 在某个具体地址
b * 0xffffffab
注意*号 - 添加零时断点
tbreak
- 查看断点
info breakpoints
- 去掉断点
disable id
id是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