GDB學習筆記(一) 常用命令

2021-07-31 09:42:01 字數 2546 閱讀 2144

gdb test                  // 使用gdb除錯test程式
run                       // 開始執行。

run arg1 arg2 arg3 ... // 開始執行,並傳入命令列引數。

run 可簡寫為 r。

list                      // 顯示10行**。

list line // 顯示第line行附近的10行**。

list n,m // 顯示第n行至第m行之間的**。

list ,n // 顯示第n行及其前面的10行**。

list fun // 顯示fun()函式附近的10行**。

list file:fun // 顯示file檔案中fun()函式附近的10行**。

list 可簡寫為 l。

break n                   // 在第n行設定斷點。

break fun // 在fun()函式處設定斷點。

break file:n // 在file檔案中第n行設定斷點。

break file:fun // 在file檔案中fun()函式處設定斷點。

break if condition // 當condition條件成立時,停止程式。

info break(i b) // 檢視斷點。

watch expr // 監視expr的值,expr可以是變數,也可以是表示式。若expr發生改變,停止程式。

delete n // 刪除編號為n的斷點。

break 可簡寫為 b。

delete 可簡寫為 d。

continue                  // 執行至下乙個斷點。

step // 單步跟蹤,進入函式。

next // 單步跟蹤,不進入函式。

finish // 執行程式,直到當前函式完成返回。

列印函式返回時的堆疊位址,返回值以及引數值(finish不可用於main())。

until // 執行程式,直到退出迴圈體。

continue 可簡寫為 c。

step 可簡寫為 s。

next 可簡寫為 n。

ptype x                   // 檢視變數x的型別

print expr // 檢視expr的值,expr可以是變數,也可以是表示式。

print expr=x // 修改expr的值,expr可以是變數,也可以是表示式。

print arrname // 檢視陣列中的所有元素的值

例如:int arr = ;

(gdb) print arr

$1 =

print arrname@len // 檢視len個陣列的值(越界訪問)

例如:int arr = ;

(gdb) print arr@2

$2 = , }

print *arrname // 檢視陣列首元素的值

例如:int arr = ;

(gdb) print *arr

$3 = 1

print *arrname@len // 檢視陣列前len個元素的值

例如:int arr = ;

(gdb) print *arr@2

$4 =

print &arrname // 檢視陣列的位址

例如:int arr = ;

(gdb) print &arr

$5 = (int (*)[5]) 0x7fffffffe4c0

print &arrname[i] // 檢視陣列元素arrname[i]的位址

例如:int arr = ;

(gdb) print &arr[0]

$6 = (int *) 0x7fffffffe4c0

(gdb) print &arr[2]

$7 = (int *) 0x7fffffffe4c8

print 可簡寫為 p。

quit                      // 退出gdb。

quit 可簡寫為 q。

enter鍵                   // 重複執行上一條命令。

gdb除錯常用命令筆記

除錯執行中的程式 1.先查要除錯程序號 ps fu username 例如3843 或者用 ps aux grep 程序名 2.執行gdb,attach 3843 3.break 類名 行號 可以加斷點 delete 斷點序號 可以刪除斷點 加完斷點後,輸入c執行到斷點位置除錯 4.print 變數...

gdb常用命令

gnu的偵錯程式稱為gdb,是乙個互動式的程式,工作在字元模式。其常用命令如下 break num 在指定的行上設定斷點 break 1 bt 顯示函式的呼叫順序 clear 刪除斷點 clear test.c 10 display expr 每次程式停止後顯示表示式的值 printf expr顯示...

GDB常用命令

1 執行 run2 單步執行 step next finish 一直執行到函式返回 until 執行到某一行 3 斷點 break args break 12 break 10 hbreak args 硬體輔助斷點 thbreak args rbreak args info breakpoints ...