一、gdb是什么?

GDB,全称GNU调试器(GNU Debugger),是一个强大的Unix/Linux下的源代码调试工具。它允许你以单步方式执行程序,并查看变量值、内存内容等,从而帮助程序员找出程序中的问题。

二、基础命令

1.首先在使用gcc编译是加上 -g得到调试表

1
gcc <要编译的文件> -g

2.gdb基础指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
list 	# list 1  列出源码。根据源码指定 行号设置断点。

b # b 20 在20行位置设置断点。

run/r # 运行程序

n/next #下一条指令(会越过函数)

s/step #下一条指令(会进入函数)

p/print #p i 查看变量的值。

continue #继续执行断点后续指令。

finish #结束当前函数调用。

quit #退出gdb当前调试。

3.其他命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
run			#使用run查找段错误出现位置。

set args #设置main函数命令行参数 (在 start、run 之前)

run #字串1 字串2 ...: 设置main函数命令行参数

info b # 查看断点信息表

b 20 if i = 5 # 设置条件断点。

ptype #查看变量类型。

bt #列出当前程序正存活着的栈帧。

frame #根据栈帧编号,切换栈帧。

display + 变量名 #设置跟踪变量

undisplay + 变量号 #解除跟踪

undisplay #取消设置跟踪变量。 使用跟踪变量的编号。

start #单步执行,运行程序,停在第一行执行语句

finish #结束当前函数,返回函数调用点

set args #设置main函数命令行参数 也可以 run 字串1 字串2 ...设置main函数命令行参数

bt #列出当前程序正存活着的栈帧

frame #根据栈帧号,切换栈帧

delete/d #删除断点

总结

使用GDB,程序员可以深入了解程序的运行情况,从而更容易地找到和修复错误。