最初學gdb除錯時是參考皓哥的blog裡做的:
開發除錯過程中,陸陸續續接觸到一些新的除錯場景,記錄如下:
**編譯:/*gdb測試*/
#include
#include
#include
struct person;
int main(int argc,char **argv)
gcc -g gdbtst.c
使用gdb 進行除錯:
結果出現了錯誤gdb a.out
(gdb)break
11//設定斷點位置在11行
(gdb)set args 170
65//設定程式執行時的命令列引數
(gdb)r //執行程式
program received signal sigsegv, segmentation fault.
0x00000033f0e480ac in vfprintf () from /lib64/libc.so.6
直接輸入
(gdb)where
可以看出錯誤產生的地方。但是在除錯過程中經常遇到一些結構體顯示錯亂的問題,檢視起來比較消耗查克拉,所以查了一下發現gdb有很多關於顯示的設定,如
然後在(gdb)set print pretty on
p 結構體
就可以比較好的顯示出成員變數的值了。 GDB 除錯筆記
chmod 777 r 給許可權包括子目錄下的所有檔案 ls l 顯示檔案的許可權大小時間等資訊 break 5 在第五行打斷點 break test 在函式test 打斷點 info break 顯示所有斷點 i b delete 2 刪除第二個斷點 list 顯示 list 1 從第一行向下顯示...
gdb除錯筆記
gcc main.c sum.c o main g gdb main info breakpoints 檢視所有的斷點 b main.c 24 設定斷點 b main.c main 可以用行號或者函式名字來設定斷點 break main.c 25 if a 109 條件斷點 disable 禁用所有...
gdb除錯帶引數程式
來自 方法一 gdb args program arg1 arg2 arg3 方法二 gdb program gdb break xx 下個斷點 gdb r arg1 arg2 arg3 方法三 gdb program gdb break xx 下個斷點 gdb set args arg1 arg2...