Linux下生成除錯C程式的core檔案

2021-10-03 08:02:30 字數 948 閱讀 7760

linux上執行c程式發生段錯誤後,沒有core檔案生成,除錯不便。

敲ulimit -a,檢視系統core檔案大小限制,如第一行core file size值為0,表示沒開啟core檔案設定

敲ulimit -c [kbytes], 設定系統允許生成的core檔案大小, 如:

ulimit -c 1024        設定core檔案最大為1024k

ulimit -c unlimited 不限制core檔案大小

ulimit -c 0 不生成core檔案

執行c程式,段錯誤後,在當前目錄生成core檔案。

問題:

多次執行程式發生段錯誤後,新生成的core檔案會把舊的core檔案覆蓋,怎麼區分並保留多個core檔案?

解決方法:

敲 echo 1 > /proc/sys/kernel/core_uses_pid, 將每次產生的core檔案的檔名中是否新增pid作為擴充套件。如果新增則檔案內容為1,反之為0。

如上圖,兩次coredump後,會根據pid生成不同的core檔案。

指定core檔案的輸出格式和路徑

echo /path/to/core.%t.%e.%p > /proc/sys/kernel/core_pattern

C 程式除錯

vs下寫c 程式除錯方法 1.出現錯誤後,雙擊錯誤,可以定位到哪一行出錯。檢查該行。2.快捷鍵 ctrl f5程式執行不除錯 f5除錯狀態下執行程式 f10逐過程除錯 遇到函式呼叫地方按f10,則執行函式並跳到函式呼叫的下一句執行 f11逐語句除錯 遇到函式呼叫地方按f11,則進去函式內部執行 sh...

Linux中C程式除錯 makefile

gcc基本語法格式 gcc 選項 原始檔 選項 目標檔案,gcc編譯c程式的過程 預處理 gcc e hello.c hello.i。e指定執行到預處理結束,下面類似。編譯 gcc s hello.i o hello.s。彙編 gcc c hello.s o hello.o。函式庫有靜態庫和動態庫兩...

C 除錯USB程式

我寫的示例工程 附件傳不上來,只能直接貼 了 enjoy.using system using system.collections.generic using system.componentmodel using system.data using system.drawing using sy...