Android系統開發(2)——GDB調試工具

來源:互聯網
上載者:User

Android系統開發(2)——GDB調試工具
調試的過程

我們在eclipse中來看一下一般調試的過程:

1、debug模式編譯


2、打上斷點


3、運行調試


4、單步調試

step into:跳到函數體內部

step over:不跳到函數體內

step return:運行完當前函數

5、繼續運行

continue

6、列印和監控值<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD48aDM+R0RCtffK1DwvaDM+PHA+z8jQtNK7ts5Do6ujq7XEtPrC66OstPrC68TayN3I58/Co7o8L3A+PHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140822/2014082208383353.png" alt="\" />

使用debug模式編譯:

進入Debug偵錯模式:

1、打斷點,打斷點的方式如下(GDB中的命令可以使用首字母來替代,比如break和b的作用相同)

break 函數名

break 行號

break 檔案名稱:行號

break 行號 if條件

通過info break可以查看斷點,通過delete可以刪除斷點,下面我們使用list命令查看源檔案,然後打斷點

查看斷點

可以看到目前有一個斷點,他的編號為1,在第四行;下面使用方法名打一個斷點

2、開始運行(run) ,可以使用continue來繼續向下運行,使用quit退出運行狀態

可以看到在啟動並執行時候停到了斷點處

3、單步調試,但步調試分別對應如下三個命令

next------step over

step-----step into

finish-----step return

下面我們再來調試一段程式碼,代碼內容和輸出結果如下:

輸出結果為:

這段代碼在沒有輸出結果之前有些朋友可能會認為正確結果應該是50.5,下面我們就通過調試來看一下哪裡出了問題

可以看到我們在第五行打了一個斷點,當執行到第五行的時候其實該行並未執行,所以此時i的值是一個無效的值。

在上面我們使用了watch來觀察變數i當i發生改變後就會顯示i改變後的值,可以看到我們next後變數i的值變為0.01,下面我們使用條件斷點來調試

可以看到在i迴圈到98次的時候實際的值並不是0.98而是比0.98大,我們next到第100次迴圈可以看到

此時條件不滿足i==1,所以只能執行99次迴圈,結果就是49.5而不是50.5

輸入wi可以方便我們調試



聯繫我們

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