core dump 简记

最近项目在运行的过程中经常突然崩溃,看提示显存不足,后来在后台添加显存监控发现一切正常,看错误日志提示开启 core dump。。无赖百度一波,记录一下。

core dump

这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,许多的程序出错的时候都会产生一个core文件,通过工具分析这个文件,可以定位到程序异常退出的时候对应的堆栈调用等信息,方便找出问题并进行解决问题。

开启 core dump

如果没有进行core dump 的相关设置,默认是不开启的。可以通过ulimit -c查看是否开启。如果输出为0,则没有开启,需要执行ulimit -c unlimited开启core dump功能。但是这里有个问题,默认生成的core文件高达几十个G,部分服务器需要限制其大小,可使用 ulimit -c 大小(单位KB) 开启。开启之后可使用 ulimit -a 查看相关信息。

core文件的名称和生成路径

没有进行设置的话,默认生成的core文件不带其它任何扩展名称,全部命名为core。新的core文件生成将覆盖原来的core文件 。

可对core文件的名称和生成路径进行相关配置,如下:

proc/sys/kernel/core_pattern:设置 core文件保存位置和文件名格式。
/proc/sys /kernel/core_uses_pid:可以控制core文件的文件名中是否添加pid作为扩展
- 查看时候发现 文件内容为1,表示添加pid作为扩展名,生成的 core文件格式为core.xxxx。
- 查看时候发现 文件内容为0,表示生成的core文件同一命名为core。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值