**:
gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc、bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc、bcb的圖形化偵錯程式更強大的功能。所謂「寸有所長,尺有所短」就是這個道理。 一般來說,gdb主要幫忙你完成下面四個方面的功能:
啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。
可讓被除錯的程式在你所指定的調置的斷點處停住。(斷點可以是條件表示式)
當程式被停住時,可以檢查此時你的程式中所發生的事。
動態的改變你程式的執行環境。
從上面看來,gdb和一般的除錯工具沒有什麼兩樣,基本上也是完成這些功能,不過在細節上,你會發現gdb這個除錯工具的強大,大家可能比較習慣了圖形化的除錯工具,但有時候,命令列的除錯工具卻有著圖形化工具所不能完成的功能。讓我們一一看來。
gdb基本命令列表:
例項:1 新建乙個原始檔vi swap.cc
原始檔內容如下:
#include
using namespace std;
void swap(int &a,int &b)
int main()
{int i,j;
cout<>i>>j;
cout<
2.生成可執行檔案 g++ -g -o swap swap.cc,注意必須使用
-g引數,編譯會加入除錯資訊,否則無法除錯執行檔案
3.啟動除錯 gdb swap
3.1 檢視原始檔 list 1,回車重複上一次指令
3.2設定除錯斷點 break 16,在第16行設定斷點,info break檢視斷點資訊(亦可使用縮寫i b
)3.3 除錯 執行 輸入run 或者r
3.3 單步除錯,step 或者 s進入函式內部
3.4檢視變數print b 或者 p b
3.5檢視函式堆疊bt,退出函式finish
3.6 繼續執行直到下乙個斷點或主函式結束continue或者c
3.7 退出除錯 輸入q
******************************2017-07-11 新增***************====
gdb在指定源檔名的指定行或指定函式新增斷點:
(gdb) break [:]//在檔案file-name的func-name函式裡面新增斷點;
(gdb) break [:]//在檔案
file-name的第line-num行新增斷點;
(gdb) list func-name //列出函式func-name的部分**;(緊跟著按回車會把剩餘的**繼續列出)
linux下如何用GDB除錯c 程式
gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這個道理。一般來說,gdb主...
linux下如何用GDB除錯c 程式
gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這個道理。一般來說,gdb主...
linux下如何用GDB除錯c 程式
gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這個道理。一般來說,gdb主...