在linux编写代码如何调试

使用gdb进行调试

gdb命令行版本的调试器,使用门槛高,但用习惯之后会发现其实有的功能比vs还好用

首先我们在调试时需要将 被调试的程序 进行编译,编译时要加上-g选项这样相当于debug版本更好调试.(关于优化在程序后加上-O0这是没有优化,加上-O1这是一级优化,加上-O2这是二级优化等等)
接着我们把敲指令 :gdb 加上编译过后的可执行程序就来到了gdb调试界面,
开始打断点
1.break 加上函数名或行号打断点会发现在这里插入图片描述
我们打断点时会发现打断点很有必要看源代码,所以在这里我们可以重新开一个终端,打开源代码.
2.info break 查看当前有多少断点在这里插入图片描述3.del 加断点编号 删除断点在这里插入图片描述4.run 让程序运行在这里插入图片描述5.print 查看变量内容在这里插入图片描述6.list 查看当前执行的的代码附近代码
7.bt:查看当前调用栈

工作中用到调试器是一件很奢侈的事情,因为工作中的代码往往是高度优化了的,所以我问要学会用printf来手动调试,

段错误:内存访问出错(signal 11,segmentation fault)
吐核:吐出了一个"核心转储文件" core dump文件
也就是错误日志文件,但由于这个核心转储文件可能很大所以操作系统默认有时候不让程序进行吐核

我们可以进行 ulimit -a的操作
把core file size的值加大
ulimit -c unlimited
最终的核心转储文件我们不能直接看懂
但我们可以通过gdb来看懂
gdb 加上可执行程序 加 核心转储文件名

猜你喜欢

转载自blog.csdn.net/qq_41016462/article/details/86743794