GDB是一个由GNU开源组织发布的、UNIX/Linux操作系统下的、基于命令行的、功能强大的程序调试工具。
- 运行gdb。
- 进行调试分析。
- 调试命令:
help 帮助
file <程序名字>
r(run) <程序运行>
断点:
b(break) <行号>
b <函数名称>
b *<函数名称>
b *<代码地址>
break 10 if size==100 条件断点
delete 删除所有断点
delete 3 删除标号为3的断点
clear N 除行N上面的所有断点
continue 继续运行程序直接运行到下一个断点
s 在源码处,相当于其它调试器中的 Step Into (单步跟踪进入)
n 在源码处,相当于其它调试器中的 Step Over (单步跟踪)
si 在汇编代码处 Step Into (单步跟踪进入)
ni 在汇编代码处 Step Over (单步跟踪)
n 1 走一步
n 3 走三步
p(print) 打印变量值
display 打印汇编代码
i(info) 显示信息
q(quit) 退出
bt(backstack) 堆栈信息
f(frame)
set arg 设置程序入口参数
show args 显示设置的参数
finish/return 执行完本函数,返回上一层
call/print 调用函数
print var(和上面的不同) 显示被调试的语言中任何有效的表达式
格式支持:/x /d /u
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十六进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。
print *a@10 a是一个数组,10个元素
- file name
- run name
- b
- b *func / b 行数
- p
- display
- i r(查看寄存器的内容)
- bt
- set arg / show args
未完待续!