我们在编写完c程序之后出现错误通常会启动调试来查找错误在哪里然后更正,同样,linux也提供了这样的一个工具来帮助我们调试C语言程序,他就是gdb:
1、调试前面的准备工作
在我们写好一个程序之后,可以使用cat命令来查看我们的代码:
cat 文件名
如果想要一个程序可以让我们调试,我们需要让这个程序具备调试的信息,如果让编译文件具有调试信息呢?
很简单,只需要在编译的指令后加上一个-g
gcc 自己编写的C语言文件 -o 输出的可执行文件 -g
比如我这里的:gcc mutifytest.c -o mutify -g
可以看到这个编译出来的文件还是比较大的,因为里面存在调试信息;
这是程序编译的结果;
2、gdb的使用
我们使用gdb命令来启动调试:
gdb 带有调试信息的可执行文件
在弹出的gdb模式下面我们可以输入下面的常用调试命令来实现我们的调试功能:
1)、b 行号 : 在行号前面打一个断点(这个行号就是使用l 命令看到的行号);
2)、r : 开始调试(就是run的意思);
3)、n : 往下执行,不会进入函数;
4)、step : 往下执行,一步一步执行,会进入函数;
5)、l : 显示代码十行,如果重复输入,将会往后显示直至代码结束,这个显示数量可以通过set list进行调整:
这里我设置为显示5行,然后在使用l显示,注意如果启动了调试后设置失败可以重新进入调试在设置:
不过需要注意只是当前调试生效,退出之后就无效了;
6、quit : 可以退出调试
7、display:可以再调试的时候使用,自动打印当前位置的变量值
display 变量值
8、条件断点
b if 条件
条件断点也是非常常用的,我们的以设置在变量满足某种情况的时候打个断点;
9、i b : 显示当前所有断点的信息;
这里可以看到我们打的所有断点的信息,包括编号为2的条件断点1 == 4;
那么这就是gdb调试工具的简单使用;