调试往往是很重要的,有时候甚至比敲出代码本身更重要,废话不多说,直接来看看在Linux下怎么利用gdb调试。
使用 vim test.c 命令 打开一个源文件test.c
然后按 i 进入编辑模式,输入代码,本篇文章就以写一个斐波那契数列函数为例子
程序的发布方式有两种:Debug模式和Release模式。
Linux gcc/g++默认使用Release模式。
要使用gdb调试,必须在源代码生成二进制程序的时候,加上-g选项。
关于Debug和Release的区别:https://blog.csdn.net/guaiguaihenguai/article/details/82014774
1、命令 gcc -g test.c 进行编译 ,记得一定要加 -g 选项,要不然没法调试
命令gcc -std=c99 -g test.c ----- 表示以C99的标准来编译源文件test.c,因为vim默认使用c89的标准编译,定义变量必须在最前边,比如说在for循环
ls查看一下,会发现多了一个名为a.out的可执行文件
2、命令 gdb a.out ---- gdb+要调试的程序的程序名 表示开始调试该程序,回车就会进入调试模式
进入调试模式后,如果想要看源代码
3、敲list (也可以用l),回车,将会从main函数开始显示,如果想从某个函数开始显示,那么只要在list(或者l)后边加上该函数的函数名就可以了
想继续执行上一条指令,可以直接敲回车,就会自动执行上一条指令
4、加断点(breakpoint)使用命令 b 26 -----表示在26行加一个断点
5、利用命令 info b 查看断点信息
6、使用run(或者r) 命令 开始调试
7、使用命令 s 可以让其一步一步执行(类似于VS编译器下的F11)
8、在调试过程中,想要知道一个变量的值 可以使用命令 print i ----表示打印变量 i 的值
9、还可以通过命令 whatis i 知道变量 i 的类型是什么
10、使用命令 bt 可以查看函数的调用栈
11、当你大概知道自己的函数的执行情况,想要结束掉该函数的话 可以使用命令 finish
12、使用命令 n 表示让其一段一段执行(类似于VS编译器下的F10)
使用命令n 接着让程序往下继续调试,直到提示Program exited normally 表示程序已经运行结束了。
13、退出调试模式使用命令 quit 或者 q
gdb的简单调试就讲到 这里,相信大家跟着调试一遍,gdb的简单调试就学会了。
PS:如果程序崩掉,也就是出现段错误,其解决方法可参考博文:
http://m.blog.csdn.net/guaiguaihenguai/article/details/78701008
复制本链接选择打开