Core dump去哪里了?

转自:http://blog.csdn.net/normallife/article/details/53818997


今天程序Crash,去追踪,找core dump,始终没有找到,后来到了/proc/sys/kernel/core_pattern这个文件夹下找到。

 
在linux平台下,设置core dump文件生成的方法:
 
1) 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump。
 
2) 使用ulimit -c unlimited命令,开启core dump功能,并且不限制生成core dump文件的大小。如果需要限制,加数字限制即可。ulimit - c 1024
 
3) 默认情况下,core dump生成的文件名为core,而且就在程序当前目录下。新的core会覆盖已存在的core。通过修改/proc/sys/kernel/core_uses_pid文件,可以将进程的pid作为作为扩展名,生成的core文件格式为core.xxx,其中xxx即为pid
 
4) 通过修改/proc/sys/kernel/core_pattern可以控制core文件保存位置和文件格式。例如:将所有的core文件生成到/corefile目录下,文件名的格式为core-命令名-pid-时间戳. echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

在运维中, 服务器会出现 coredump,这时/var/log/messages 会有 coredump信息产生,但是经常会有

May 12 17:51:01 localhost abrtd: Executable '/data/tianq/test/test' doesn't belong to any package
May 12 17:51:01 localhost abrtd: Corrupted or bad dump /var/spool/abrt/ccpp-2014-05-12-17:51:01-25312 (res:2), deleting

相关输出, 修改 /etc/abrt/abrt-action-save-package-data.conf 可以屏蔽此问题

cp /etc/abrt/abrt-action-save-package-data.conf /etc/abrt/abrt-action-save-package-data.conf.bak

vim /etc/abrt/abrt-action-save-package-data.conf

将 ProcessUnpackaged = no 修改为 ProcessUnpackaged = yes

service abrtd restart

参考连接: http://h10025.www1.hp.com/ewfrf/wc/document?cc=us&lc=en&docname=c04008096

上一篇:POJ 1222 EXTENDED LIGHTS OUT(高斯消元解异或方程组)


下一篇:Poj 1222 EXTENDED LIGHTS OUT