Core Dump

22 篇文章 0 订阅

Core Dump

事后调试
当一个进程要异常终止时,可以选择把进程的用户空间内存数据全部保存到磁盘上,文件名通常叫core,这叫做Core Dump。进程异常终止通常是因为有Bug,比如非法访问内存导致段错误,事后可以用gdb调试器检查core文件以查清错误原因,这叫做事后调试。一个进程允许产生多大的core文件取决于进程的Resource Limit。 系统默认不允许产生core文件的,是为了避免以下两个隐患:

一:信息泄露
在core文件中,可能包含用户的账号密码等敏感信息

二:占用空间
对于某些自重启的进程而言,若是发生了错误,则会在进程退出时将发生错误时的内存数据全部保存起来,然后重启。当自重启仍然不能解决错误时,由于计算机自重启某一个进程的速度非常快,一秒钟可以重启n次。这样,在极短的时间内就会产生大量的core文件,占用大量的空间。

怎么用?

在开发调试阶段,为了快速定位出出错位置,可以手动开启core dump功能。

具体方式如下:
首先用ulimit -c n命令将core文件大小从默认的0字节改变为n字节

当程序异常终止时,core文件中会记录内存中的数据,但是此时core文件中的数据时一堆二进制数据。它是在调试过程中使用的。所以在编译程序时,要在Debug模式下进行。
当进入gdb,引入程序相关的core文件便可以快速定位异常原因。
core dump

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值