強制Linux進程產生coredump


Linux對信號SIGQUIT(3),SIGABRT(6), SIGFPE(8)和SIGSEGV(11)的默認處理,都可以強制讓進程產生coredump文件。
如果進程代碼對這些信號做了其它處理,就不會產生了。

# ulimit -c unlimited
# ulimit -c
unlimited
# kill -6 $pid

 

附:在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





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM