----**平凡的程式設計師
編寫**過程中少不了除錯。在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...