GDB 帶參除錯筆記

2021-07-09 06:02:26 字數 810 閱讀 7370

最初學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...