利用執行時產生core檔案,再利用gdb除錯找出段錯誤在哪一行
ulimit -c unlimited
使用該bash命令,可以使執行時段錯誤產生core檔案。
1.gcc -g 編譯
gcc -g -o a a.c
2.執行檔案,便會產生乙個core.***檔案
./a
3. 除錯core檔案
gdb ./a core.***
便可以直接檢視出段錯誤出錯在哪一行
段錯誤錯誤的原因:
一般是錯誤地使用指標引起的
1)訪問系統資料區,尤其是往 系統保護的記憶體位址寫資料
最常見就是給乙個指標以0位址
2)記憶體越界(陣列越界,變數型別不一致等) 訪問到不屬於你的記憶體區域
gdb 除錯段錯誤
開發嵌入式linux的時候經常會遇到segmentation fault,也就是段異常錯誤,一般是使用錯誤的指標訪問記憶體導致。這種錯誤可以通過開啟核心的異常資訊輸出,再用gdb對發生段異常的位址進行定位。1.開啟核心的異常資訊輸出 mips的核心 關閉了arch mips mm fault.c的d...
gdb除錯段錯誤
一 gdb的除錯命令。c語言是 cc g tst.c o tst c 是g g o 生成的檔案 file.cpp c 除錯程式命令 gdb file 啟動,羅列 行數ist 1,break 行數 info break,run r 除錯執行,step s 單步除錯,檢視變數 print p 變數名,檢...
GDB除錯段錯誤
一 gdb的除錯命令。c語言是 cc g tst.c o tst c 是g g o 生成的檔案 file.cpp c 除錯程式命令 gdb file 啟動,羅列 行數ist 1,break 行數 info break,run r 除錯執行,step s 單步除錯,檢視變數 print p 變數名,檢...