Ubuntu生成和调试core文件
概述:
core文件就是程序执行时的内存映像,主要是用于对程序的诊断和调试
开启core文件生成:
查看core文件生成开关
ulimit -c
# 0 不产生core文件
# unlimited 产生的core文件没有字节限制
# 字节数 超过不产生core文件,否则产生core文件
打开core文件生成开关(临时,重启后无效 )
ulimit -c unlimited
打开core文件生成开关(永久)
vim /etc/security/limits.conf
# 加入(表示任何用户可用产生的core文件没有字节限制)
* soft core unlimited
设置core文件的路径和名称格式:
设置pid扩展名(如果需要)
# 修改 /proc/sys/kernel/core_uses_pid 文件内容为: 1
echo "1" > /proc/sys/kernel/core_uses_pid
# 1 添加pid作为扩展名,生成的core文件名称为core.pid
# 0 不添加pid作为扩展名,生成的core文件名称为core
修改core文件的文件格式以及保存路径(如果需要)
# 修改 /proc/sys/kernel/core_pattern 文件内容
echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
# 保存路径为/corefile
# 文件名格式是 core-%e-%p-%t
参数 | 描述 |
---|---|
%p | 添加pid(进程id) |
%u | 添加当前uid(用户id) |
%g | 添加当前gid(用户组id) |
%s | 添加导致产生core的信号 |
%t | 添加core文件生成时的unix时间 |
%h | 添加主机名 |
%e | 添加导致产生core的命令名 |
调试core文件:
Ubuntu生成和调试core文件
https://www.inktea.eu.org/2022/8591.html