设置core文件大小
ulimit -c unlimit
查看core文件大小
ulimit -a
显示:core file size (blocks, -c) unlimited
设置coredump文件名
echo /usr/core_log/core_%e_%t_%p > /proc/sys/kernel/core_pattern
%e程序文件名
%t core dump的时间 (由1970年1月1日计起的秒数)
%p所dump进程的进程ID
注意:确保core_log目录已创建
写一个dump程序
#include <stdio.h>
#include <stdlib.h>
void dumpCrash()
{
char *pStr = "test_content";
free(pStr); //dump
}
int main()
{
dumpCrash();
return 0;
}
编译运行 (-g)
gcc -g -o a dump.c
./a
在配置的coredump路径下产生一个dump文件
调试coredump文件
gdb -c [dumpfile] [exec]
gdb -c /usr/core_log/core_xx a
其它
上述coredump文件命名是临时修改,永久修改在/etc/sysctl.conf文件中:
kernel.core_pattern = /usr/core_log/core_%e_%t_%p