【轉】 linux編程之GDB調試

來源:互聯網
上載者:User

標籤:

GDB是一套字元介面的程式集,可以用它在linux上調試C和C++程式,它提供了以下的功能:

1 在程式中設定斷點,當程式運行到斷點處暫停

2 顯示變數的值,可以列印或者監視某個變數,將某個變數的值顯示出來

3 逐步執行

4 運行時修改變數的值

5 跟蹤路徑

6 線程切換

等等

 

下面以以下程式為例

當我們要使用GDB進行程式的調試時,在用GCC編譯時間需要加上-g,如下:

GDB之所以能夠進行程式的調試也是在於進行編譯時間的-g選項,當設定了這個選項的時候,GCC會向程式中塞入一下資訊,作為GDB調試時的鋪墊

,然後GDB才能夠利用這些鋪墊和資訊與程式互動。

有兩種方式可以進入GDB,一種就是直接在命令列上輸入gdb,然後再在gdb中用file命令載入要調試的程式:

另一種就是,直接在命令列上使用:gdb 程式名

這兩種方法都是要在GDB中載入已經做了鋪墊的將被調試的程式。

進行GDB並且載入了程式後,我們就可以進行一系列的調試操作了:

1 用 "set args 參數值1  參數值2...."來設定輸入參數

2用“list 開始的行號"來列印內容

list 還可以選取區間來列印代碼:

3.用 ”b 位置"設定斷點

4.用 “run 參數”來運行程式

5.用"display 變數名“來顯示變數

6.用”c"來繼續運行程式

7.用set命令來改變變數的值

8用q命令來退出GDB

 9 用p命令來列印變數的值

10 設定條件斷點

11 用delete刪除斷點

12 用info break 來顯示斷點資訊

13.用bt來顯示函數調用路徑

14用whatis或者ptype來顯示變數的類型

【轉】 linux編程之GDB調試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.