Linux怎么开启核心转储_Linux core dump生成与调试配置【开发】
Linux系统中未生成core dump文件时,需依次检查并配置ulimit限制、/proc/sys/kernel/core_pattern、core_uses_pid与suid_dumpable参数、systemd服务限制,并通过崩溃测试程序验证。
如果您在Linux系统中运行程序时发生崩溃,但未生成core dump文件,则可能是由于核心转储功能被禁用或相关配置不正确。以下是开启并正确配置Linux核心转储的步骤:
一、检查并设置ulimit限制
Linux默认可能将core文件大小限制为0,导致崩溃时不生成任何转储文件。需通过ulimit命令临时或永久调整该限制。
1、在当前终端中执行 ulimit -c unlimited,允许生成任意大小的core文件。
2、验证设置是否生效:执行 ulimit -c,输出应为 unlimited 而非 0。
3、若需永久生效,将 ulimit -c unlimited 添加至用户shell配置文件(如 ~/.bashrc 或 ~/.profile)末尾,并执行 source ~/.bashrc。
二、配置/proc/sys/kernel/core_pattern
该内核参数决定core文件的命名规则与保存路径。默认情况下core文件可能
仅生成为“core”,且位于进程工作目录,易被覆盖或难以定位。
1、查看当前模式:执行 cat /proc/sys/kernel/core_pattern。
2、临时设置为带时间戳和PID的格式:执行 echo '/tmp/core.%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern。
3、确保目标目录存在且可写:执行 sudo mkdir -p /tmp/coredumps && sudo chmod 1777 /tmp/coredumps。
三、启用kernel.core_uses_pid与kernel.suid_dumpable
这两个内核参数分别控制是否在core文件名中包含PID,以及是否允许对setuid程序生成core dump。部分安全策略会禁用后者,导致特权程序崩溃时不生成转储。
1、启用PID后缀:执行 echo 1 | sudo tee /proc/sys/kernel/core_uses_pid。
2、允许setuid程序生成core:执行 echo 2 | sudo tee /proc/sys/kernel/suid_dumpable(值2表示在满足dumpable标志时允许)。
3、验证变更:分别执行 cat /proc/sys/kernel/core_uses_pid 和 cat /proc/sys/kernel/suid_dumpable,确认输出为 1 和 2。
四、通过systemd服务配置core dump(适用于systemd系统)
对于由systemd管理的服务,其资源限制独立于用户shell,需通过systemd单位文件显式启用core dump。
1、编辑对应服务的覆盖配置:执行 sudo systemctl edit servicename.service(将servicename替换为实际服务名)。
2、在打开的编辑器中添加以下内容:
[Service]
LimitCORE=infinity
MemoryLimit=infinity
3、重载配置并重启服务:执行 sudo systemctl daemon-reload 和 sudo systemctl restart servicename.service。
五、验证core dump是否正常生成
生成一个故意崩溃的测试程序,用于确认整个配置链路有效。此步骤可快速识别前序配置中是否存在遗漏或冲突。
1、创建测试C文件 crash.c:内容为 int main() { char *p = NULL; return *p; }。
2、编译:执行 gcc -g -o crash crash.c。
3、运行并触发段错误:执行 ./crash,随后检查 ls -l /tmp/core.* 是否出现新生成的core文件。
4、使用gdb加载验证:执行 gdb ./crash /tmp/core.crash.*,进入后输入 bt 查看回溯信息。
技术教程SEO上一篇 : c# stack 和 queue 的区别
下一篇 : 淘宝2025双11限时秒杀活动入口活动时间一览
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!