1、开启coredump
ulimit -c unlimited;
#echo 1 > /proc/sys/kernel/core_uses_pid
echo "/mnt/appdata/Core-%e-%p-%t" > /proc/sys/kernel/core_pattern
- ulimit -c 可查看/设置生成core文件的限制,ulimit -c 0表示关闭core文件生成,ulimit -c unlimited表示对生成的core文件的大小不作限制。有的博客写了ulimit -c 可限制core文件大小,但是笔者实测发现大小限制不了
- /proc/sys/kernel/core_pattern 可设置core文件的生成目录,和core文件的命名格式,"%e-%p-%t"是"进程名-pid-系统时间"
参数 | 说明 |
---|---|
%e | 所 dump 的文件名 |
%g | 所 dump 的进程的实际组 ID |
%h | 主机名 |
%p | 所 dump 的进程PID |
%s | 导致本次 coredump 的信号 |
%t | 转储时刻 (由1970年1月1日起计的秒数) |
%u | 所 dump 进程的实际用户ID |
2、测试core文件生成
kill -11 pid
查看core文件是否正常生成
3、core文件解析
pc端解析
gdb elf程序 core文件