linux下的C語言開發(gdb除錯)

2021-07-05 21:25:49 字數 1171 閱讀 1394

----**平凡的程式設計師

編寫**過程中少不了除錯。在windows下面,我們有visual studio工具。在linux下面呢,實際上除了gdb工具之外,你沒有別的選擇。那麼,怎麼用gdb進行除錯呢?我們可以一步一步來試試看。

[cpp]view plain

copy

#include 

intiterate(

intvalue)  

intmain()    

既然需要除錯,那麼生成的可執行檔案就需要包含除錯的資訊,這裡應該怎麼做呢?很簡單,輸入 gcc test.c -g -o test。輸入命令之後,如果沒有編譯和鏈結方面的錯誤,你就可以看到 可執行檔案test了。

除錯的步驟基本如下所示,

(01) 首先,輸入gdb test

(02) 進入到gdb的除錯介面之後,輸入list,即可看到test.c原始檔

(03) 設定斷點,輸入 b 函式名或行數

設定臨時斷點,tbreak 函式名或行數

恢復暫時失效的斷點,enable 斷點號 斷點號 斷點號

使斷點失效, disable 斷點號

刪除斷點,則輸入delete break + 斷點序號

刪除斷點,clear 斷點所在行號

設定觀察斷點,watch

(04) 啟動test程式,輸入run 

(05) 程式在main開始的地方設定了斷點,所以程式在printf處斷住

(06) 這時候,可以單步跟蹤。s單步可以進入到函式,而n單步則越過函式

(07) 如果希望從斷點處繼續執行程式,輸入c

(08) 希望程式執行到函式結束,輸入finish

(09) 檢視斷點資訊,輸入 info break

(10) 如果希望檢視堆疊資訊,輸入bt

(11) 希望檢視記憶體,輸入 x/64xh + 記憶體位址

(12) 希望檢視函式區域性變數的數值,可以輸入print + 變數名

(13)希望修改記憶體值,直接輸入 print  + *位址 = 數值

(14) 希望實時列印變數的數值,可以輸入display + 變數名

(15) 檢視函式的彙編**,輸入 disassemble + 函式名

(16) 修改變數的值,輸入 set +  變數名

(17) 退出除錯輸入quit即可

linux下的C語言開發(gdb除錯)

編寫 過程中少不了除錯。在windows下面,我們有visual studio工具。在linux下面呢,實際上除了gdb工具之外,你沒有別的選擇。那麼,怎麼用gdb進行除錯呢?我們可以一步一步來試試看。cpp view plain copy include int iterate int value...

linux下的C語言開發 gdb除錯

編寫 過程中少不了除錯。在windows下面,我們有visual studio工具。在linux下面呢,實際上除了gdb工具之外,你沒有別的選擇。那麼,怎麼用gdb進行除錯呢?我們可以一步一步來試試看。include int iterate int value int main 既然需要除錯,那麼生...

linux下的C語言開發(gdb除錯)

原文 用gdb除錯多程序的程式會遇到困難,gdb只能跟蹤乙個程序 預設是跟蹤父程序 而不能同時跟蹤多個程序,但可以設定gdb在fork之後跟蹤父程序還是子程序。以上面的程式為 include include include define maxline 80 int main void if pid...