[置顶] Linux 使用gdb对c/c++代码进行调试
2017-09-13 20:04
846 查看
c/c++开发的工作者常常需要考虑跨平台使用的问题,那么在linux上编译是必不可少的一部分。gdb是linux下的c/c++调试工具,具体安装(这里用的是centos的系统,其它系统也大同小异):
我们来一段c++代码,命名为test.cpp:
开始编译:
运行:
可以发现,
出错了,那么我们开始用gdb进行调试,输入:
上图为最终得到的结果,可以看出行号6处,出现算术运算溢出。下面介绍gdb常用指令:
其实,gdb还有一种用法,对于大型项目,可以快速锁定异常的位置,就是设置core dump,使用命令:
这样,每次运行程序出现异常时,都会在程序所在的目录下生产core dump文件,那么就可以使用:
快速找到bug的位置,但是使用gdb的前提是源码一定要写入二进制文件中,-g千万不能丢下。
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 testoutcore-1234
快速找到bug的位置,但是使用gdb的前提是源码一定要写入二进制文件中,-g千万不能丢下。
相关文章推荐
- linux c/c++ 第一次使用GDB调试小小程序
- 如何使用Eclipse和GDB对JNI代码进行调试(JAVA和C)
- Linux下的gdb对代码进行调试
- Linux下使用gdb进行单步调试(一)
- Linux下使用gdb进行单步调试(二)
- 使用gdb调试c/c++代码
- 使用VS2017调试Linux C++代码
- 使用gdb、gdbserver在ARM-Linux下进行远程调试
- 用gdb进行linux代码的调试
- Linux下C++的编程——GDB进行程序调试
- debug tensorflow / 使用gdb调试tensorflow底层C++代码
- Linux下使用gdb调试C/C++程序
- Linux下使用gdb进行单步调试(三)
- [置顶] linux环境下使用gdb调试段错误
- Linux下GDB调试C++代码
- Unix/Linux C++应用开发-gdb调试工具使用
- [置顶] linux下如何利用gdb调试汇编代码
- Xcode常用技巧(1)-使用Xcode进行代码分析及GDB调试
- linux下使用GDB调试C/C++总结(图文教程)
- Linux下使用GDB进行调试