Linux中如何生成Coredump的注意事项以及最详细的介绍

一.概念介绍

        有时候我们在使用Linux进行编程的时候都是使用GDB进行调错,但是如果程序已经在运行过程中的时候呢?这个时候我们就需要查看coredump日志来判断是哪里出问题了,直接通过coredump导出一个错误日志,直接观察日志判断错误.

二.coredump的配置

 (1)首先创建文件  /data/coredump

         然后  执行这条指令 指定生成的路径

        %e代表文件名  %p代表进程号

echo /data/coredump/core.%e.%p>/proc/sys/kernel/core_pattern

 这个时候我们cat 看一下

说明指定成功了..

(2)然后改变一下coredump目录的权限

 chmod 666 coredump/

(3)接着执行,让文件的core file size变成unlimited 

ulimit -c unlimited

如图:

到此配置工作大功告成!   注意如果这个没有设置为unlimited的话,文件是无法写入的 注意一定要打开,且这个设置只是对应单独窗口的  若想要永久打开此选项(如果你生成不了coredump文件 八成是因为没打开这个东西)

vim ~/.bashrc

在最下面加一行

ulimit -c unlimited

三.coredump的使用

我们故意生成一个段错误的程序

访问了空指针肯定会报段错误   接着coredump文件会生成到你指定的/data/coredump文件夹下

#include <stdio.h>
  
int func(int *p){

    int y=*p;
    return y;
}


int main(){

   int *p=NULL;
   return func(p);
}

接着使用gdb打开   注意编译的时候要加  -g 选项   不然无法用gdb打开

(1)打开程序生成coredump

(2)查看coredump文件夹

(3)运行coredump文件

gdb test.exe /data/coredump/core.test.exe.3196

已经找到了是这个错误在文件的第五行

使用bt可以查看栈信息  使用f n查看第n层的信息  这里栈里一共有两层f 0 和 f1 

 

到此就是使用coredump的注意事项和方法.

创作不易希望一键三连~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值