gdb調試coredump文件


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

1、生成coredump文件

echo "ulimit -c unlimited" >> /etc/profile

然后記得敲入命令

source /etc/profile

然后敲入命令:

ulimit –c

效果如下:

image

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

kill -s SIGSEGV $$

然后回到執行上述命令的路徑下即可看到coredump文件,我這邊生成的文件名為core.3477,依個人會隨機生成不同的數字。

 

2、調試coredump文件

調試方式為: gdb program coredump文件

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

gdb test core.3533

顯示如下圖所示:

image

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

backtrace

打印堆棧信息。

image

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

然后調用命令

frame 8

直接找到源代碼的位置:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM