在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 加上可执行程序 加 核心转储文件名

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值