Linux程式宕掉後如何通過gdb查看出錯資訊
阿新 • • 發佈:2018-11-08
我們在編寫服務端程式的時候,由於多執行緒並且環境複雜,程式可能在不確定條件的情況下宕掉,還不好重新,這是我們如何獲取程式的出錯資訊,一種方法通過打日誌,有時候一些錯誤日誌也不能體現出來,這時就用到我們的core dump檔案了。
通常情況下coredmp包含了程式執行時的記憶體,暫存器狀態,堆疊指標,記憶體管理資訊等。可以理解為把程式工作的當前狀態儲存成一個檔案。許多程式和作業系統出錯時會自動生成一個core檔案。
1 我們系統一般預設是吧core dump 關掉的,可以通過ulimit -c 檢視如果是0就是關閉了,我們可以通過ulimit -c n來開啟,你是設定coredump檔案的最大值kb,或者直接設定不限制
ulimit –c unlimited
2 設定完畢後我們編寫一個出錯的程式實驗一下
3 編譯一下,記得加-g 將除錯資訊編入執行程式,再執行程式 g++ main.cpp -o main -g
http://edu.csdn.net/course/detail/3738
//main.cpp
int main()
{
int *xcj = 0;
*xcj = 10;
return 0;
}
3 編譯一下,記得加-g 將除錯資訊編入執行程式,再執行程式 g++ main.cpp -o main -g
./main
4 使用gdb檢視除錯資訊 gdb main core