Linux环境下如何生成core文件
Linux环境下进程发生异常而挂掉,通常很难查找原因,但是一般Linux内核给我们提供的核心文件,记录了进程在崩溃时候的信息。但是生成core文件需要设置开关,具体步骤如下:
1、查看生成core文件的开关是否开启,输入命令# ulimit -a
我们看到,第一行core文件大小为0,没有开启。
2、使用#ulimit -c [kbytes]可以设置系统允许生成的core文件大小;

这样进程崩溃就可以生成core文件了,这种方法只能在shell中生效,下面说一下永久生效的方法:
#vim /etc/profile,然后进入编辑模式,在profile文件中加入
ulimit -c unlimited
保存退出,重启服务器,改文件就长久生效,或者#source /etc/profile,不重启服务器,使用source使文件马上生效。
3.指定生成文件的路径和名字;执行# vim /etc/sysctl.conf,进入编辑模式,加入下面两行
kernel.core_pattern=/var/core/core_%e_%p
kernel.core_uses_pid=0
在var下创建core目录,用# sysctl –p /etc/sysctl.conf,是修改马上生效。
core_pattern的命名参数如下:
%c 转储文件的大小上限
%e 所dump的文件名
%g 所dump的进程的实际组ID
%h 主机名
%p 所dump的进程PID
%s 导致本次coredump的信号
%t 转储时刻(由1970年1月1日起计的秒数)
%u 所dump进程的实际用户ID
4、# kill -s SIGSEGV $$ ,执行命令,可以看到/var/core下生成了一个core文件,说明已经设置成功。
好了,接下来进程出问题就可以用core文件调试了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)