linux下的c程式常常會因為記憶體訪問錯誤等原因造成segment fault,此時如果系統core dump功能是開啟的,那麼將會有記憶體映像轉儲到硬碟上,之後可以用gdb對core檔案進行分析,檢視系統發生segment fault時刻的情況。
使用ulimit -a可以檢視系統core檔案的大小限制 使用ulimit -c[kbytes]可以設定系統允許生成的core檔案大小
例如: ulimit -c 0 不產生core檔案 ulimit -c 100 設定core檔案最打為100k ulimit -c unlimited 不限制core檔案大小。
linux下的c程式常常會因為記憶體訪問錯誤等原因造成segment fault,此時如果系統core dump功能是開啟的,那麼將會有記憶體映像轉儲到硬碟上,之後可以用gdb對core檔案進行分析,檢視系統發生segment fault時刻的情況。
使用ulimit -a可以檢視系統core檔案的大小限制 使用ulimit -c[kbytes]可以設定系統允許生成的core檔案大小
例如: ulimit -c 0 不產生core檔案 ulimit -c 100 設定core檔案最打為100k ulimit -c unlimited 不限制core檔案大小。
示例:#include<stdio.h>void main(){int *p =(int *)0;*p =1;}編譯上面這段程式碼,gcc memory.c -g -o memory ;執行ulimit -c 100設定core檔案大小為無限制 ;執行./memory,系統提示你segment fault並生成了core檔案,接下來可以用gdb進行分析了; gdb ./memory core