GDB除錯coredump檔案

2021-08-15 01:51:19 字數 811 閱讀 3441

linux上程式崩潰起來挺煩人,不過linux 比較好的是有gdb.

echo

"ulimit -c unlimited

" >> /etc/profile

然後記得敲入命令

source /etc/profile
然後敲入命令:

ulimit –c
效果如下:

確認能否生成coredump檔案,使用如下命令(使用時注意,我在測的時候會直接退出當前使用者)

kill -s sigsegv $$
然後回到執行上述命令的路徑下即可看到coredump檔案,我這邊生成的檔名為core.3477,依個人會隨機生成不同的數字。

除錯方式為: gdb program coredump檔案

例如我的可執行檔案為test, 生成的coredump檔案為core.3533,則命令如下:

gdb test core.3533
顯示如下圖所示:

嗯,有的人運氣好,直接就顯示源**了,如果你像我一樣,接著用下面的命令

backtrace
列印堆疊資訊。

我們看到最接近崩潰的地方在第8行

然後呼叫命令

frame 8
直接找到源**的位置:

本文**:

gdb除錯coredump檔案

linux上程式崩潰起來挺煩人,不過linux 比較好的是有gdb.echo ulimit c unlimited etc profile 然後記得敲入命令 source etc profile然後敲入命令 ulimit c效果如下 確認能否生成coredump檔案,使用如下命令 使用時注意,我在測...

用gdb除錯core dump檔案

在unix系統下,應用程式崩潰,一般會產生core檔案,如何根據core檔案查詢問題的所在,並做相應的分析和除錯,是非常重要的。什麼是core dump?core的意思是記憶體,dump的意思是扔出來,堆出來.開發和使用unix程式時,有時程式莫名其妙的down了,卻沒有任何的提示 有時候會提示co...

用gdb除錯coredump檔案

在unix系統下,應用程式崩潰,一般會產生core檔案,如何根據core檔案查詢問題的所在,並做相應的分析和除錯,是非常重要的。什麼是core dump?core的意思是記憶體,dump的意思是扔出來,堆出來.開 發和使用unix程式時,有時程式莫名其妙的down了,卻沒有任何的提示 有時候會提示c...