1. 查看系统是否打开产生core文件开关
1) -> ulimit -c
2. 设置core文件大小
1)-> ulimit -c unlimited 或 ulimit -c {大小(单位为kb)}
3 . 设置core文件参数
1)设置产生core文件的路径
/proc/sys/kernel/core_uses_pid可以控制core文件的问价名是否添加PID作为扩展,文件的内容为1,
标识添加PID作为扩展,生成的core文件格式为core.XXXX;为0则表示生成的core文件统一命名为core;
-> echo "1" > /proc/sys/kernel/core_uses_pid
2)设置core文件名格式
%p - insert pid into filename 添加pid%u - insert current uid into filename 添加当前uid
%g - insert current gid into filename 添加当前gid
%s - insert signal that caused the coredump into the filename 添加导致产生core的信号
%t - insert UNIX time that the coredump occurred into filename 添加core文件生成的unix时间
%h - insert hostname where the coredump happened into filename 添加主机名
%e - insert coredumping executable name into filename 添加命令名
-> echo "/tmp/core-%e-%p-%t" > /proc/sys/kernelcore_pattern
注意事项:
1. 注意ulimit的环境变量的范围
2. Makefile是否有选项影响core文件,比如-O2、strip