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

 轉自:http://www.cppblog.com/kongque/archive/2011/03/07/141262.aspx


core dump的概念:

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平臺下,設置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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章