首页  >   经验  >   Linux使用coredump文件调试系列:4 加载不出来调试信息的问题解决办法

Linux使用coredump文件调试系列:4 加载不出来调试信息的问题解决办法

查看 codexia 的博客 2018-12-14 10:58:07 944 会员文章,禁止转载
coredump  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介我们知道了如何调试coredump文件,却不知道为什么堆栈信息就是显示不出来。其实是少了一些东西,需要安装一下。但是这个安装过程又非常曲折,所以又从头到尾总结了一下。

    在《Linux使用coredump文件调试系列3-使用GDB调试coredump》中,我们知道了如何调试coredump文件,却不知道为什么堆栈信息就是显示不出来。其实是少了一些东西,需要安装一下。但是这个安装过程又非常曲折,所以又从头到尾总结了一下。
1.系统缺少调试符号库信息
    对于centos系统来讲,很可能是没有的,至少我的是centos6.8就没有。所以会提示:

Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.209.el6_9.2.x86_64
    gdb告诉我要安装一个调试信息的库,一般叫做符号库。

    那么什么是符号库呢?简单来说,在生成调试信息的时候,编译器肯定不会说生成字符串来说明,所以一般都是二进制格式来存储,各个数值代表一定的意义。就好像你给每一个人编一个号,对应上一个名字,这样你就有一个姓名表。如果没有这个姓名表,你无法从一个序号里得知一个人的姓名的。符号库也是如此,如果没有符号库,你没有办法从堆栈信息里去找对应的函数名的。所以缺少符号库,尽管你开启了调试模式,内部是有一个堆栈,也有对应的函数的编号,但是你是不知道它是什么函数的,所以显示的都是问号,这样还怎么调试呢?

    如果你看到的堆栈里,所有的都是问号,那无疑就是缺少符号库
    还有一种情况,就是版本不对。这会导致一个问题,那就是函数名部分有,部分没有。当然这种情况就不好预测了,不同的库可能实现不一样,按照一个未知的不正确库去解析一个堆栈信息,自然可能错误千奇百怪了。
    而如果上一层的函数名能正常显示而底层的没有显示,很可能就是底层的符号库没有安装,而上层的符号库是有的。
  &nb

1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 9uu@\ 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. Linux使用coredump文件调试系列:4 加载不出来调试信息的问题解决办法 查找全网同类文章
  2. Linux使用coredump文件调试系列:3 使用GDB调试coredump 查找全网同类文章
  3. Linux使用coredump文件调试系列:2 编译可产生coredump文件的程序并测试 查找全网同类文章
  4. Linux使用coredump文件调试系列:1 设置生成coredump文件 查找全网同类文章
  5. 详解coredump-通过core文件来定位bug位置 查找全网同类文章
  6. 教你如何解决VS2015的30天试用期已过即VS2015许可证已过期的问题 查找全网同类文章
  7. Linux源码笔记——感觉写的巧妙的代码 查找全网同类文章
  8. 在Win7上安装VS2015 RC(候选发布版)失败完美解决方法 查找全网同类文章
  9. 完全图解VS2017安装过程并演示VS2017创建Linux项目和调试 查找全网同类文章
  10. 表白代码,你值得拥有 查找全网同类文章
分享到:
分享文章[Linux使用coredump文件调试系列:4 加载不出来调试信息的问题解决办法]到QQ空间

相关阅读

猜您感兴趣