最簡單的gdb調試步驟


1. 使用gcc -g 參數編譯生成可調試的程序app

gcc main.c -o app -g

 

2. 啟動gdb調試程序

gdb app

  如果需要給程序傳遞參數的話,在gdb啟動后使用set args傳參:

set args xxx xxx xxx

   啟動調試:

run  #或縮寫:r

 

3. gdb啟動后查看代碼的命令:list(縮寫:l)

l             #默認顯示10行代碼
l 25   #查看第25行附近的代碼
l main.c #查看main.c的代碼
l math.c:add #查看math.c文件中 add函數的代碼
l math.c:30   #查看math.c文件中 第30行附件的代碼
  • show listsize       #查看list命令一次顯示的行數
  • set listsize 20   #設置list命令一次顯示20行

 

4. 設置斷點的命令:break(縮寫:b)

b  12    #在第12行添加斷點
b 行號    
b 函數名  
b 文件名:行號
b 文件名:函數名

 

5. 查看斷點信息的命令:info(縮寫:i)

i b

     

 

6. 刪除斷點的命令:del(縮寫:d)

d 2      #刪除Num為 2 的斷點
d 3 8 #刪除Num為3和8的斷點
d 4-7    #刪除Num(從4到7)的斷點

 

7. 設置斷點無效的命令:dis

dis 8      #停用Num為8的斷點

    

 

 8.啟用斷點的命令:ena

ena  8    #啟用Num為8的斷點

   

 

9.設置條件斷點: 

b 17 if i==10         #循環體中i的值為10時,斷點生效

    

 

10. 啟動程序開始調試的命令:run(縮寫:r)

 

11.程序遇斷點后,繼續運行程序的命令:continue(縮寫:c)

 

12.打印變量值的命令:print(縮寫:p) 

     

 

13.查看變量類型的命令:ptype

     

 

14.逐步調試命令:next(縮寫:n)

 

15.顯示變量值的命令:display 

display  變量

     

 

16.查看當前顯示變量的列表:

i display

     

 

17.取消變量值的顯示命令:undisplay

undisplay  Num

 

18.進入函數內部的命令:step(縮寫:s)

     

 

19.跳出函數體的命令:finish

  注意:函數體內部如果有循環斷點的話, 無法達到跳出函數體的效果。

 

20.設置變量值的命令:set var

set var x=10    #設置變量x的值為10

 

21.跳出for循環的命令:until

  注意:for循環中如果還有斷點的話,是達不到跳出for循環效果的。

 

22.退出調試的命令:quit(縮寫:q)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM