Android debug調試之特殊情況下的調試

第一點:debug調試之for循環下的調試
當調試for循環的時候,只需要調試到 i 等於某個具體的值的時候,如果一步一步的來調試的話,是相當費時間的.這時候就需要用到debug調試中的for循環調試
示例調試代碼如下:

    for (int i = 0; i < 10 ; i++) {
            Log.e("Tag","this is tag"+i);
        }

第一步調試:在循環內實體內打斷點,並單擊右鍵,在彈出的窗口中輸入Condiction條件,點擊Done按鈕.

這裏寫圖片描述

調試第二步:開始運行程序,當程序運行到for循環這裏的時候,是直接從你最開始設置的I的值開始的,如下圖
這裏寫圖片描述

第二點:debug調試之日誌調試
當程序已經運行起來後,纔想起某處地方需要加入打印的log信息,這樣再重複去加log日誌和再次運行實際上是很浪費時間的.這個時候當debug程序運行起來後,只需要在需要打log之前的地方設置斷點就可以了.當程序運行在此時,單擊右鍵,設置需要打印的信息即可;
如圖如下;
第一步:首先在彈出的窗口中,點擊More(^F8)按鍵後,彈出如下串口,讓窗口中操作
這裏寫圖片描述

第二步:再次單擊斷點圖標(右鍵單擊),如圖

這裏寫圖片描述
以上:即可

第三點:debug調試之變量賦值(變量動態賦值)
比如,我們的代碼裏有一個變量,這個變量的值會影響到程序的執行結果。如果我們想觀察這個變量在不同的賦值下程序的執行結果怎麼辦呢?現在不需要一遍遍的賦值,然後運行程序輸出結果.只需要利用Debug模式下的變量賦值(Set Value),只需要運行一次,就能達到我們的觀察效果。在使用該變量的代碼處打個斷點,然後在Variables窗口找到對應的變量,修改變量值後,然後按回車鍵即可(注意:在輸出結果的地方最好也打個斷點,直接跳轉到下一個斷點處輸出結果)。
如下圖所示操作
這裏寫圖片描述

這裏寫圖片描述

以上:就是前後二個步驟!

第四點:debug模式下的變量觀察
這個太簡單了!有2種方法:
第一:在Variables變量區和Watches觀察區可以查看Debug模式下,程序執行到斷點處的變量值或者對象的各屬性值
第二:在debug模式下,只要將光標定位至斷點代碼行所用到的變量,IDE會自動彈出一個小窗口,點擊這個小窗口裏的變量即可彈出變量屬性值窗口(簡單方便的可以隨時切換各個變量值的情況,程序走過的地方也不用怕,仍然可以查看)
如下圖:
這裏寫圖片描述

圖中所示:斷點已經走到log處,但是查看的是st的值.

第五點:debug模式下之對象求值
在斷點處,如果有變量對象,系統提供了表達式求值功能,針對Variables視圖中的變量對象,我們可以輸入任何計算語句,實時查看表達式計算結果。具體操作爲,右鍵Variables視圖中的變量對象,選擇Evaluate Expression,彈出表達式窗口,輸入任何你想要的計算語句,點擊Evaluate計算按鈕,即可顯示Result結果:
如下圖所示
這裏寫圖片描述

這裏寫圖片描述

或者在Watches區域,點擊左下角的+號,然後就可以像寫代碼一樣求任意賦值之後對象的值了。如圖:
這裏寫圖片描述

第六點:debug調試之變量斷點
有時候,我們想知道自定義的變量的何時何地發生了改變,就可以使用變量斷點。變量斷點的圖標樣式也與衆不同,在變量定義行打斷點,開啓Debug模式,在程序執行的過程中,如果該變量的值發生改變,程序會自動停下來,並定位在改變變量值的地方,供開發者調試:
如下圖所示:
這裏寫圖片描述

這裏寫圖片描述

第七點:debug調試之異常斷點
程序在執行的過程中可能會出現各種各樣的未知性異常,如果能在發生異常的時候第一時間讓程序停下來,並定位到異常出現的地方,供開發者調試,那當然是極好的。而萬能的Android Studio就提供了這樣的功能。

打開斷點管理器,這裏有兩種方式打開:點擊工具欄菜單Run,選擇View Breakpoints;在Debug窗口直接點擊View Breakpoints圖標。點擊左上角加號按鈕,可以添加各種斷點,包括前文提到的Method Breakpoints和Field Watchpoints斷點,這裏我們選擇Exception Breakpoints異常斷點,在彈出的Enter Exception Class窗口中輸入需要監控的異常類別即可:
這裏寫圖片描述

這裏寫圖片描述

  以上:就是debug調試技巧
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章