斷點調試-讓你的調試更有效率

前言:

這一篇就給大家分享一點調試的小技巧,讓我們的代碼調試變得更有效率.

你可以選擇隨時進入調試模式

一般我們都是點擊綠色小昆蟲進入調試模式進行調試, 其實還可以有另外一種方法.看下面的面板截圖,有沒有發現有兩個小昆蟲圖標.

這裏寫圖片描述

圖標 EnglishName 名稱
這裏寫圖片描述 debugger 調試模式開啓運行
這裏寫圖片描述 Attach debugger to Android Progress 爲已經運行的Android進程添加調試模式

大家都知道debugger運行程序是比Run 速度要慢點的.如果你想解決這個問題,我推薦給你Attach debugger to Android Progress.
這種方法先Run運行起來程序,然後走到要調試的地方,在Attach debugger to Android Progress,選擇要調試的進程.這樣會快很多.

使用方法:

在Android 進程已經運行的狀態下,點擊這裏寫圖片描述 ,選擇要調試的包名,也就是我們的應用包名,就可以了.

這裏寫圖片描述

使用場景:

1.調試的頁面層級較深
2.非debug模式下,突然想進入調試模式.這種方法可以爲你省去了重新運行程序的時間哦

善於使用不同分類的斷點

我們上篇博客使用的斷點只用到其中一個最常用也最廣爲人知的一個分類-行斷點(Java Line Breakpoint).但是我們需要知道的是,AndroidStudio提供給我們的並不僅僅是這幾種斷點.善於在不同的條件下使用不同分類的斷點是件非常重要的事情.

打開Run->View Breakpoints->點擊”+”號可以看到如下的界面,

這裏寫圖片描述

解釋一下:

圖標 EnglishName 名稱
這裏寫圖片描述 Java Line Breakpoint 行斷點
圖標 Java Method Breakpoint 方法斷點
這裏寫圖片描述 Java Field Breakpoint 字段斷點
這裏寫圖片描述 Java Exception Breakpoint 異常斷點(官方的異常)
這裏寫圖片描述 Exception Breakpoint 異常斷點 (支持自己定義的異常)

字段斷點:

添加方法:
在全局變量定義處左側鼠標左鍵點擊添加

這裏寫圖片描述

使用場景:

定義的全局變量被多處使用,當不確定被何處修改的時候,對要觀察的變量添加Java Field Exception.這樣只要該變量的值被修改的時候,都會自動斷點到發生修改的代碼行.

方法斷點:

添加方法:

在定義方法處左側鼠標左鍵點擊添加

這裏寫圖片描述

使用場景:

需要具體觀察一個方法的時候,就是Java Method Breakpoint大展身手的時候了,當代碼執行到該方法斷點處的時候,如果想進入方法,直接step over(F6).想直接跳到方法結束看返回值的時候,直接Resume Program(F8),跳到下一個斷點,會自動斷到方法結尾處.僅僅一個方法斷點而已,就能做到這麼多,是不是超級方便?

異常斷點:

添加方法:

在ViewBreakpoints->點擊”+”號->Java Exception Breakpoints

這裏寫圖片描述

使用場景:

出現異常但是不知道在代碼的哪個地方拋出的時候,就是用它的時候.添加某異常的斷點之後,只要出現該異常,會自動定位到出錯代碼處.

爲你的斷點添加條件

當爲你的斷點添加上條件之後,就只有滿足這個條件的之後,這個斷點纔會生效.

例如,我在下面的代碼中,直接想查看總循環次數爲for循環的第36次循環,我就添加”i == 36”的條件.於是當斷點生效時,表現爲:

這裏寫圖片描述

簡單粗暴,直接乾脆有木有?接下來是使用方法和注意事項.

添加方法:
在斷點上鼠標右鍵,就會出現添加條件的對話框.

這裏寫圖片描述

使用場景:

使用的場景很廣泛,一般用在很多數據中,專門觀測某一類數據的時候,條件斷點表現的尤爲出色.

注意事項:

1.任何種類的斷點都可以添加條件,不要被我的截圖誤導,以爲只有行斷點可以添加斷點.
2.添加條件(Condition)的時候,要保證條件的返回值是boolean值,例如”i =36”一定要寫爲”i==36”;
3.添加條件的時候,要保證條件中的變量到斷點處已經被定義,否則條件表達式是不成立的.(PS:這裏告訴給小夥伴們一個避免這個問題的小方法,就是當你發現條件中的變量顏色變成顯眼的紅色時,一定要檢查一下,變紅色肯定是因爲這個變量不存在.)

你知道嗎?你可以手動設置變量的值.

在調試過程中,你完全可以直接給你定義的變量設置一些自定義的值,各種刁鑽都可以,去測試你的方法寫的對不對,代碼是否寫的穩定.
這樣就再也不用一次次去構建不同環境去測試運行了.

示例:

這是調試的一個方法,已經進入方法了,但是我們想改方法參數b的值.

這裏寫圖片描述

在debug中輸入自定義的值,然後Enter鍵按下去

這裏寫圖片描述

神奇的事情發生了,變量 b的值已經被改變了.

這裏寫圖片描述

使用方法:

debug面板–>Variables窗口–>選中要觀察的變量–>鼠標右鍵—>Set Value

還可以更棒,Evaluate Expression 直接求值表達式.

示例:

輸入要求值的表達式,然後點擊Evaluate按鈕,就可以輸入表達式的值.

這裏寫圖片描述

使用方法:
1.代碼區–>鼠標右鍵–>Evaluate Expression
2.debug面板–>Variables窗口–>鼠標右鍵—>Evaluate Expression
2.debug面板–>Watches窗口–>鼠標右鍵—>Evaluate Expression

注意事項:

要保證表達式中的變量已經定義,否則表達式是不成立的.(PS:這個也可以看是否出現紅色顏色區分表達式是否正確.)

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