Linux 使用gdb对c/c++代码进行调试

来源:互联网 发布:java bean json 编辑:程序博客网 时间:2024/06/02 04:16

c/c++开发的工作者常常需要考虑跨平台使用的问题,那么在linux上编译是必不可少的一部分。gdb是linux下的c/c++调试工具,具体安装(这里用的是centos的系统,其它系统也大同小异):

yum install gdb

我们来一段c++代码,命名为test.cpp:

#include<iostream>using namespace std;int main(){int a=0;int b=10;int c=b/a;cout<<c<<endl;return 0;}

开始编译:

g++ test.cpp -g -o testout

运行:

make testout

可以发现,这里写图片描述出错了,那么我们开始用gdb进行调试,输入:

gdb testout 

这里写图片描述
上图为最终得到的结果,可以看出行号6处,出现算术运算溢出。下面介绍gdb常用指令:

-s 单步调试-l 显示当前源码-b 行号 表示在行号处设置断点-r 表示开始调试

其实,gdb还有一种用法,对于大型项目,可以快速锁定异常的位置,就是设置core dump,使用命令:

ulimit -c unlimited

这样,每次运行程序出现异常时,都会在程序所在的目录下生产core dump文件,那么就可以使用:

gdb testout core-1234

快速找到bug的位置,但是使用gdb的前提是源码一定要写入二进制文件中,-g千万不能丢下。

原创粉丝点击