linux下生成core dump文件方法及设置

core dump的概念:

A  core dumpis the recorded state of the working memory of a computer program at aspecific time, generally when the program has terminated abnormally(crashed). In practice, other key pieces of program state are usuallydumped at the same time, including the processor registers, which mayinclude the program counter and stack pointer, memory managementinformation, and other processor and operating system flags andinformation. The name comes from the once-standard memory technologycore memory. Core dumps are often used to diagnose or debug errors incomputer programs.

On many operatingsystems, a fatal error in a program automatically triggers a core dump,and by extension the phrase "to dump core" has come to mean, in manycases, any fatal error, regardless of whether a record of the programmemory is created.

在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

posted on 2016-10-12 16:52  小人物的奋斗  阅读(1313)  评论(0编辑  收藏  举报

导航