巧用你的GDB
阿新 • • 發佈:2020-08-22
一、除錯段錯誤
當執行程式發生段錯誤時,使用GDB除錯能快速定位錯誤位置
Linux提供的core dump機制:當程式中出現記憶體操作錯誤時,會發生崩潰併產生核心檔案(core檔案)。
(1)無論你是用Makefile來編譯,還是直接在命令列手工輸入命令來編譯,都應該加上 -g
選項。
(2)一般來說,在預設情況下,在程式崩潰時,core檔案是不生成的(很多Linux發行版在預設時禁止生成核心檔案)。所以,你必須修改這個預設選項,在命令列執行:
$ ulimit -c unlimited // 不限制生成的core檔案的大小
(3)執行你的程式,使之重現Segmentation Fault錯誤。
(4)這時,你會發現在你程式同一目錄下,生成了一個檔名為 core.*** 的檔案,即核心檔案。例如,“core.1523”這樣的檔案。
(5)用GDB除錯它。假設你的可執行程式名為test,則在命令列執行:
$ gdb test core.1523