在终端写程序,总不能天天用printf来看自己的program有没有跑对吧,所以,我们有了gdb能在终端进行debug。那么gdb要怎么使用呢?
gdb debugging
在进行gdb教学之前,首先要确认自己有没有安装gdb。对于Ubuntu类linux运行sudo apt install gdb
进行安装,对于Centos类linux运行yum install gdb
进行安装。
在安装完成后可以通过gdb -version
查看安装版本以及是否成功安装。
安装完成后可以正式开始用gdb对自己的程序进行调试啦
调试
- 首先,确认好自己已经用
gcc
或者其他编译工具编译好了自己的代码且带有debug调试信息(例如用gcc
编译的话为gcc -g
)。 - 假设我的可执行程序名字为
a.out
且在当前目录下, 那么我们可以通过gdb ./a.out
来对我们的程序进行调试。假如我们有core文件,我们执行gdb ./a.out corefilename
(一般出错会生成core文件,通过这种方式我们可以快速找到出错行的代码)。我们也可以执行gdb -p 程序进程号
对正在运行的程序进行调试。 - 可以通过
b
或者break
加上函数名称或者数字
,给函数或者第数字
行加上断点。如果不知道要调试的地方为哪一行,可以通过list
或者list n
n为数字,来查看代码 - 在添加好断点以后我们可以执行
run
或者r
来运行程序 - 可以通过
next
或者n
运行至下一行 - 也可以通过
continue
或者c
运行至下一断点 - 可以通过
info
来查看信息,例如info break
或info b
可以查看在哪里打了断点 - 可以通过
print
或者p
加 变量 查看当前变量,也可以加 (&
加变量名)查看其地址 - 可以通过
display
加 变量名字使其在每次执行gdb指令都会显示值 - 可以通过
step
进入当前运行函数进行调试 - 可以通过
shell
加shell指令,在gdb内部执行shell操作 - 可以通过
set logging on
记录debug操作,并输出至gdb.txt
(只会记录开启以后的操作) - 可以通过
wathpoint
加 变量地址 来观察变量的变化(当变量变化时,gdb会有输出) - 可以通过
quit
退出gdb程序
Comments | NOTHING