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文件:

GDB调试core文件


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!