程式已經挂死等情況,核心會生成一個core檔案(是記憶體映像以及調試資訊)。可以通過使用gdb來檢視core檔案,訓示出導緻程式出錯的代碼所在的檔案和行數,一般為了友善調試,需要指定core 檔案的大小以及位置等,core 檔案其實目前記憶體的儲存資訊,是以導緻了如果伺服器記憶體很大,也會導緻core 檔案很大,一般會需要切割大小,不然一會就把硬碟撐滿。
檢視系統中core檔案生成的開關是否打開
使用ulimit -c指令可檢視core檔案的生成開關,若結果為0,則便是關閉了此功能,不會生成core檔案。
設定core檔案生成
使用指令ulimit -c filesize指令
若ulimit -c unlimited 則辨別此core檔案的大小不受限制
若指定filesize,如果生成的資訊超過此大小,将會被裁剪,最終生成一個不完整的core檔案,在調試此core檔案時,gdb會提示錯誤。
但是若想整個系統中生效則在shell裡面設定是不行的,方法如下:
編輯/root/.bash_profile檔案,在其中加入ulitmit -S -c unlimited
core檔案的設定
/proc/sys/kernel/core_uses_pid可以控制core檔案的問價名是否添加PID作為擴充,檔案的内容為1,辨別添加PID作為擴充,生成的core檔案格式為core.XXXX;為0則表示生成的core檔案統一命名為core;可通過一下指令修改此檔案:
core檔案的儲存位置和檔案名格式
以下是參數清單: