核心檔案一詞源自於磁蕊記憶體 (core memory)
啟用core dump
大多數的Linux發行版通常會將core dump預設為關閉,此時要用ulimit命令可以查看目前的core dump功能是否有效。$ulimit -c
0
-c 選項代表core dump文件的大小限制,上面例子限制為0,表示core dump是被關掉的。
開啟core dump
$ulimit -c unlimited如此一來就設定為不限制core dump的大小,當發生問題的時候就會產生core file。
$./a.out
Segmentation fault (core dumped)
當下目錄會產生core file
$file core*
core.7561: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, format './a.out'
要用gdb除錯產生的core file
$gdb -c core.7561 ./a.out
GNU gdb Fedora (6.8-17.fc9)
...
Core was generated by './a.out'.
Program terminated with signal 11, Segmentation fault.
[New process 7577]
#0 0x000000000040048c in main () at segfault.c:6
6 *a=0x1;
參考資料:
Book:Debug Hacks 深入除錯的技術和工具
Wiki :核心檔案
沒有留言:
張貼留言