linux上程序崩潰起來挺煩人,不過linux 比較好的是有gdb.
1、生成coredump文件
echo "ulimit -c unlimited" >> /etc/profile
然后記得敲入命令
source /etc/profile
然后敲入命令:
ulimit –c
效果如下:
確認能否生成coredump文件,使用如下命令(使用時注意,我在測的時候會直接退出當前用戶)
kill -s SIGSEGV $$
然后回到執行上述命令的路徑下即可看到coredump文件,我這邊生成的文件名為core.3477,依個人會隨機生成不同的數字。
2、調試coredump文件
調試方式為: gdb program coredump文件
例如我的可執行文件為test, 生成的coredump文件為core.3533,則命令如下:
gdb test core.3533
顯示如下圖所示:
嗯,有的人運氣好,直接就顯示源代碼了,如果你像我一樣,接着用下面的命令
backtrace
打印堆棧信息。
我們看到最接近崩潰的地方在第8行
然后調用命令
frame 8
直接找到源代碼的位置: