1. 程式人生 > >Linux程式宕掉後如何通過gdb查看出錯資訊

Linux程式宕掉後如何通過gdb查看出錯資訊

我們在編寫服務端程式的時候,由於多執行緒並且環境複雜,程式可能在不確定條件的情況下宕掉,還不好重新,這是我們如何獲取程式的出錯資訊,一種方法通過打日誌,有時候一些錯誤日誌也不能體現出來,這時就用到我們的core dump檔案了。 通常情況下coredmp包含了程式執行時的記憶體,暫存器狀態,堆疊指標,記憶體管理資訊等。可以理解為把程式工作的當前狀態儲存成一個檔案。許多程式和作業系統出錯時會自動生成一個core檔案。 1 我們系統一般預設是吧core dump 關掉的,可以通過ulimit -c 檢視如果是0就是關閉了,我們可以通過ulimit -c n來開啟,你是設定coredump檔案的最大值kb,或者直接設定不限制 ulimit –c unlimited 2 設定完畢後我們編寫一個出錯的程式實驗一下
//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


通過gdb就可以看到錯誤的資訊了 更多內容可以到網上搜索“夏曹俊”獲取我的課程 也可以看我在csdn學院的視訊課程
http://edu.csdn.net/course/detail/3738