core dump的概念:
A core dump
is the recorded state of the working memory of a computer program at a
specific time, generally when the program has terminated abnormally
(crashed). In practice, other key pieces of program state are usually
dumped at the same time, including the processor registers, which may
include the program counter and stack pointer, memory management
information, and other processor and operating system flags and
information. The name comes from the once-standard memory technology
core memory. Core dumps are often used to diagnose or debug errors in
computer programs.
On many operating
systems, a fatal error in a program automatically triggers a core dump,
and by extension the phrase "to dump core" has come to mean, in many
cases, any fatal error, regardless of whether a record of the program
memory is created.
在linux平臺(tái)下,設(shè)置core dump文件生成的方法:
1) 在終端中輸入ulimit -c 如果結(jié)果為0,說(shuō)明當(dāng)程序崩潰時(shí),系統(tǒng)并不能生成core dump。
2) 使用ulimit -c unlimited命令,開(kāi)啟core dump功能,并且不限制生成core dump文件的大小。如果需要限制,加數(shù)字限制即可。ulimit - c 1024
3) 默認(rèn)情況下,core dump生成的文件名為core,而且就在程序當(dāng)前目錄下。新的core會(huì)覆蓋已存在的core。通過(guò)修改/proc/sys/kernel/core_uses_pid文件,可以將進(jìn)程的pid作為作為擴(kuò)展名,生成的core文件格式為core.xxx,其中xxx即為pid
4) 通過(guò)修改/proc/sys/kernel/core_pattern可以控制core文件保存位置和文件格式。例如:將所有的core文件生成到/corefile目錄下,文件名的格式為core-命令名-pid-時(shí)間戳. echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern