【Linux系列】gdb调试工具的使用以及核心转储文件

gdb的基本使用

一、基本指令

最好在编译时加上-g选项生成Debug版本,否则会导致gdb部分指令无法使用。

1、gdb 可执行文件 进入gdb调试。

2、break + 行号/函数名 打断点。

3、info break 查看断点信息。

4、delte + 断点编号 删除断点。

5、run让程序从头开始运行,遇到断点停止。

6、continue让程序继续运行。当程序遇到断点停止想要继续运行时使用continue,使用run会让程序重新开始运行。

7、print 变量名 查看当前状态下变量信息。

8、list 查看当前执行到的语句附近的语句。

9、bt 查看调用栈。

10、next 单步执行下一条语句。

11、quit 退出gdb调试器。

二、核心转储文件

当我们在ide中对于内存操作不当读取了不合法的内存后我们的程序会强制终止,并且ide会报错,那么我们在Linux中如果执行了类似于读取了非法的内存之类的内存使用不当的错误后会发生什么呢?

将我们写好的错误代码编译之后执行。会发现出现了段错误(吐核) 的错误信息。对,这就是Linux下内存出错的表现。段错误是Linux内存出错的错误代称,我们暂时先不研究,那么后面的吐核是什么意思呢?所谓吐核就是生成一个错误报告告诉我们哪出错了,更像是车祸现场。但是我们查看这个目录下也没有新的文件生成啊,那么核吐到哪了呢?
  
其实核普遍很大,因此不是想吐就能吐的除了来的,那么我们想要这个核能够吐出来该怎么做呢?

执行指令 ulimit -a,然后再执行 ulimit -c unlimited 指令,之后再去运行我们有错的代码生成的可执行文件即可看到我们当前目录下多出了一个core文件,这个就是所谓的核,那么我们怎么查看这个核的信息呢?

我们的每个核都对应一个可执行文件,因此为了查看到正确的信息,我们需要将可执行文件与核配对才能查看。因此执行以下命令即可用gdb查看核了: gdb 可执行文件 core文件名 。这个核也被称为核心转储文件。用gdb打开后即可发现gdb已经将报错的具体信息核代码的行数都列出来了。

其实在实际编程中我们有很多情况下无法使用gdb进行调试,比如说遇到几率性bug,因此我们要学会用诸如输出的方式来进行调试,归根到底gdb不过是一个辅助我们调试的工具罢了,千万不要依赖于此调试工具,gdb往往更擅长于解决程序崩溃的问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值