學會用core dump除錯程式錯誤

2021-06-07 01:17:42 字數 664 閱讀 1621

什麼是core dump?

2023年11月03日 星期六 0:43

今天除錯乙個程式, 用到了core dump, 於是寫出來, 記於此.

什麼是core dump?

core的意思是記憶體, dump的意思是扔出來, 堆出來.

開發和使用unix程式時, 有時程式莫名其妙的down了, 卻沒有任何的提示(有時候會提示core dumped). 這時候可以檢視一下有沒有形如core.程序號的檔案生成, 這個檔案便是作業系統把程式down掉時的記憶體內容扔出來生成的, 它可以做為除錯程式的參考.

core dump又叫核心轉儲, 當程式執行過程中發生異常, 程式異常退出時, 由作業系統把程式當前的記憶體狀況儲存在乙個core檔案中, 叫core dump.

如何使用core檔案?

gdb -c core檔案路徑 [應用程式的路徑]

進去後輸入where回車, 就可以顯示程式在哪一行當掉的, 在哪個函式中.

為什麼沒有core檔案生成呢?

有時候程式down了, 但是core檔案卻沒有生成. core檔案的生成跟你當前系統的環境設定有關係, 可以用下面的語句設定一下, 然後再執行程式便成生成core檔案.

ulimit -c unlimited

core檔案生成的位置一般於執行程式的路徑相同, 檔名一般為core.程序號

(一)GDB除錯程式,Coredump故障分析

gdb是gnu發布的一款功能強大的程式除錯工 具。gdb主要完成下面三個方面的功能 1 啟動被除錯程式。2 讓被除錯的程式在指定的位置停住。3 當程式被停住時,可以檢查程式狀態 如變數值 vlist l 檢視程式 vbreak b 函式名在某函式入口處新增斷點 vbreak b 行號在指定行新增斷點...

php 除錯程式

在執行時必須知道某個變數為何值。我是這樣做的,建立一檔案debug.php,其內容如下 php php ob start session start echo pre echo 本頁得到的 get變數有 print r get echo 本頁得到的 post變數有 print r post echo...

GDB除錯程式

gdb的三個功能 1 啟動被除錯的程式 2 設定斷點 3 設定斷點之後可以檢查程式的狀態 1.編譯生成可執行檔案 注意 g 除錯選項 gcc g tst.c o tst 2.啟動gdb gdb tst 3.在main函式處設定斷點 break main 4.執行程式 run5.利用 更加豐富的 gd...