使用GDB進行調試

來源:互聯網
上載者:User

使用GDB調試C程式
GDB是GNU開源組織發布的一個非圖形化的Unix下的程式調試軟體。
它能使使用者在程式運行時觀察資料的內部結構和記憶體使用量情況。

GDB提供的主要功能:
1)監視程式中的變數值
2)設定斷點,使程式在指定程式碼停止。
3)逐步執行
4)動態改變程式的執行環境

一、調試一個簡單的程式
1、編寫主程式test.c

#include <stdio.h>int main(int argc, char *argv[]){        int i=0;        for(i; i<10; i++)        {                printf("%d\n", i);        }        return 0;}

2、編譯器為可執行檔test
$ gcc test.c -g -o test
為了使用GDB進行調試,必須加上-g選項,這樣可以使程式在編譯時間包含調試資訊。

3、載入test可執行檔,啟動GDB調試
$ gdb test

看到上面類似效果,說明GDB成功載入了test可執行檔

4、現在,可以對程式進行一系列的調試了
調試時,常用的命令有:
file:裝載要調試的可執行檔
kill:終止正在調試的程式
list:列出源碼
run:執行程式
break:設定斷點
watch:動態觀察某個變數
next:執行下一行
quit:退出GDB
make:不退出GDB,而重建可執行檔
call name(args):調用並執行name,參數為args的函數

return value:停止當前函數,並返回設定的value給調用者

a、列出源碼

(gdb) list

b、執行程式

(gdb) run

c、設定斷點,並重新執行可執行檔

(gdb) break 6

(gdb) run

可以看到,程式在第6行被掛起了

d、逐步執行

(gdb) n

(gdb) n

(gdb) n

(gdb) n

(gdb) n

(gdb) n

可以看到,程式在6-8行之間重複執行

e、監控變數i

(gdb) watch i

(gdb) n

Hardware watchpoint 2:i,表示這是第二個監控點,變數為i

Old value、New value能讓你看到變數的變化情況

f、輸出變數的值

(gdb) print i

$2,表示第二個監控變數,此處表示變數i,當前值為3

更多關於GDB,可以參看百度百科 http://baike.baidu.com/view/639266.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.