1. 查看Core是否开启
命令:ulimit -c
如果返回 0 则证明没有开启
2. 开启Core
命令:ulimit -c size;
size 可以写整数,比如1024,或者 unlimited 无限度。
3. /proc/sys/kernel/core_uses_pid可以控制core文件的文件名中是否添加pid作为扩展。文件内容为1,表示添加pid作为扩展名,生成的core文件格式为core.xxxx;为0则表示生成的core文件同一命名为core。
可通过以下命令修改此文件:
echo "1" > /proc/sys/kernel/core_uses_pid
4.修改Core生成路径:
命令:sysctl -w name=value命令
例:/sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p 这个/var/log 是要生成的Core文件路径。
为了更详尽的记录core dump当时的系统状态,可通过以下参数来丰富core文件的命名:
%% 单个%字符
%p 所dump进程的进程ID
%u 所dump进程的实际用户ID
%g 所dump进程的实际组ID
%s 导致本次core dump的信号
%t core dump的时间 (由1970年1月1日计起的秒数)
%h 主机名
%e 程序文件名
生效:source /etc/profile
5.简单查看Core文件.
命令gdb [exec file] [core file]
比如: gdb ./mygame /log/var/mgame.111.core
bt 查看错误堆栈。