没有core dump文件如何定位问题

当Linux上的C/C++程序crash且没有core dump文件时,可以通过查看kernel日志中的rip地址,结合addr2line工具来定位问题。通过addr2line将地址转化为源代码的文件名和行号,再根据错误代码分析原因,如用户态程序内存访问越界等。
摘要由CSDN通过智能技术生成

最近在 Linux Qt上做开发,发现程序异常crash,用core dump文件也没有记录下来有用的信息,如下图:


定位程序异常crash 的过程百般痛苦,虽然最后是用 把core dump文件大小的限制取消,完整记录程序崩溃的堆栈信息结合gdb 定位到问题,但发现网友分享的 不用core -dump 定位bug的方法,故记录下来,以备他日试用。


有时写c/c++程序,运行后出现core, 如果有core文件则可以gdb方便的定位问题,

可是,当core文件找不到(或被删除)时如何定位?

刚做了个测试,在没有core文件的情况下对程序bug进行定位


cat core.cpp 
1 #include <iostream>

  2 
  3 int main(int argc, char** argv){
  4 
  5         int *p = NULL;
  6         for(int i=0; i<15; i++){
  7                 p[i] = i;
  8         }
  9 
 10         return 0;
 11 }
<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值