天天看點

Linux C++ Segmentation Fault錯誤調試------core檔案-----gdb

1、開啟core dump記錄

ulimit -a 檢視linux下的各種限制

ulimit -c unlimited 設定無限制

2、安裝gdb 

參考:https://blog.csdn.net/chengsi101/article/details/79424083

3、編譯時加-g參數,生成debug資訊

如:g++ Hello.cpp -g -std=c++11

若不加,會提示

Linux C++ Segmentation Fault錯誤調試------core檔案-----gdb

4、運作:gdb a.out core

a.out:出錯的程式

core:自動生成的dump檔案

5、結果:

下面這張是抓到資訊的圖,指出了錯誤出在的行數及檔案名

Linux C++ Segmentation Fault錯誤調試------core檔案-----gdb

退出gdb檢視:輸入 quit

6、core dump檔案找不到,可能太大了,,找個空間大的位置存儲

cat /proc/sys/kernel/core_pattern 檢視檔案名及位置

echo "/home/core-%e-%p-%t" > /proc/sys/kernel/core_pattern    修改路徑和名稱

如果gdb和core不在同一個linux系統下,檢視不了,如下圖

Linux C++ Segmentation Fault錯誤調試------core檔案-----gdb

繼續閱讀