Linux gdb 除錯模式

2021-09-27 11:26:27 字數 1258 閱讀 1470

linux gdb 除錯

編譯除錯版本的檔案

/include -g

啟動gdb除錯

若有main

()有設定引數則可以在gdb下設定傳遞引數

set args ...

..gdb一些命令

1.run:執行整個程式

2.start:開始除錯

3.next

(n):逐條語句執行

4.step:逐條語句執行,並且嘗試進入函式內部,庫函式無法進去

5.quit:退出gdb除錯

6.break

(b) 行號: 設定斷電

1):b 10 在main

()函式的第10行設定斷點run的時候會開在第10行

2)b add

(函式名)

:在該函式的檔案設定斷點

3)b add.c:

6 在其他檔案(add.c)的第6行設定斷點.main也適用

4)list

(l):檢視main

( 5

)list + 檔名 +

:+ 行號 = 檢視與4

)一致 6

)info b: 檢視所有斷點資訊獲得斷點編號

7)del(d)

: 刪除對應編號(num)斷點

8)continue

(n):跳到下乙個斷點

7.print

(p)+ 變數名: 檢視變數的值,

8.print

(p)+ 函式名: 檢視函式的返回值型別和引數型別

9.print

(p)+ 自定義資料型別, 檢視內部變數和函式在當前狀態所獲得的結果

10.ptype 檢視變數的資料型別

11.可以在除錯過程中設定變數的值

例如:b main // 先給main 設定個斷點

run // 執行狀態卡在斷點

//設定引數的值

set agrc=

3 set ar**[1]

="2"

run // 在run 清除設定的狀態

12.display argc // 跟蹤變數,每執行一步列印會列印一次變數值可以跟蹤多個,刪除用undisplay + 編號

13.設定條件斷點:在某個迴圈內設定條件知道成立才退出

/*32: for(int = 0; i < 10; ++i)

*/b 32

if i ==

1//直到i==1才退出斷點32

linux gdb除錯彙編

1 除錯hello,要求編譯時指定了 gstabs選項 2 執行hello deepfuture lx deepfuture lx desktop private mytest hello hello,world abcd 3 用gdb開啟hello deepfuture lx deepfuture...

Linux gdb除錯總結

進入除錯 1 輸入gdb 檔名 2 輸入gdb file 檔名 l 顯示源 預設顯示main函式所在檔案的源 list 檔名 num 顯示指定檔案指定行附近的源 b breakpoint的簡寫,設定斷點。b 行號 給指定行新增斷點 b 函式名 給指定函式新增斷點 b 檔名 行號 給指定檔案指定行新增...

Linux gdb除錯總結

在windows作業系統下,我們的執行程式有兩個版本。debug開發除錯版本 得到的可執行檔案.exe檔案相對較大,其中包含除錯資訊。且不做任何優化,未開發人員提供強大的應用除錯能力 release發行版本 檔案相對較小,不包含除錯資訊,並進行了各種優化,以期達到 最小和速度最優。為使用者的使用提供...