linux下无法生成core文件

文章介绍了如何在Linux系统中设置core文件的生成,包括查看core_pattern配置,修改/etc/sysctl.conf文件来设定core文件路径,以及使用echo命令直接写入配置。通过这些方法,可以确保程序崩溃时产生core文件用于后续的故障排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接:

​​​​​​https://www.cnblogs.com/sunbin2019/articles/10988995.htmlhttps://www.cnblogs.com/sunbin2019/articles/10988995.html

通常情况下,只要设置了ulimit -c unlimited,在程序崩溃后就会在当前目录下生成core文件

首先通过以下代码查看core_pattern文件,该文件指定了core文件生成的路径。从该路径下找生成的core文件,同时如果该文件路径的开头是管道符‘|’则说明生成的core文件被作为参数送给后面的文件了。

cat /proc/sys/kernel/core_pattern

如果没有路径或者是管道符开头的,需要修改core_pattern。该文件应该是不能直接修改,会拒绝访问,就算用sudo指令强制修改,最后也可能和我一样,就算用‘!‘也无法强制退出vi,无法保存。

该文件需要用如下的方式修改:

方法1:用vi打开/etc/sysctl.conf

sudo vi /etc/sysctl.conf

在最后一行添加如下代码:

kernel.core_pattern=core_%e_%p_%t

等于号后面的路径用于指定生成的core的路径,如不加前缀,则生成在当前目录下。后面的%代表core对应的ELF,ELF运行时的进程号和运行的开始时间。

完成编辑后按下esc输入以下代码将修改写入并退出

:wq

最后shell中输入如下代码,将修改同步到core_pattern文件:

sudo sysctl -p /etc/sysctl.conf

此时输入以下代码查看core_pattern就发现修改成功了:

cat /proc/sys/kernel/core_pattern

 再接着执行可执行文件就能发现生成了core文件:

方法2:通过echo的方式写入,可以参考以下博客:

linux下不产生core文件的原因_linux_Small-K-DevPress官方社区 (youkuaiyun.com)icon-default.png?t=N4HBhttps://huaweicloud.youkuaiyun.com/63563a72d3efff3090b5b5b3.html?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-1-120870746-blog-125546025.235%5Ev36%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-1-120870746-blog-125546025.235%5Ev36%5Epc_relevant_default_base&utm_relevant_index=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值