AS中debug不為人知的使用技巧

此文基于對debug有一定基礎

高效斷點

條件斷點

條件成立才會觸發(fā)。

場景:比如一個10次的for循環(huán),調試時想停留在第8次,那么就會用到條件斷點

使用:先在需要的行前左鍵單擊添加普通斷點,右鍵點擊該斷點出現(xiàn)對話框,在“Condition”處填入條件即可,條件語法同 Java,如 i == 8。點擊 Done,完成添加。這樣當條件未滿足時,不會阻塞程序運行;當條件滿足時斷點被觸發(fā)
如圖:

條件判斷.png

不阻塞應用程序的日志斷點

場景:調試時我們常常有這樣的需求:輸出一些log

使用:常規(guī)的做法是:添加日志代碼,重新運行,觸發(fā)斷點
對于比較龐大的項目而言,這樣做的效率肯定比較低
高效的做法:
在條件斷點彈出的對話框里,將“suspend”設置為未選中狀態(tài),斷點觸發(fā)時就不會被阻塞。此時對話框會多出一些選項
如圖:

添加log.png

異常觸發(fā)的斷點

場景:日常開發(fā)難免碰到一些給出具體信息和拋異常的位置也沒有頭緒或者未給出具體位置的情況,這個時候往往需要我們人為分析,但是這種做法顯然效率不高

使用:此時我們就可以用上異常斷點
打開斷點管理器,可以看到Java Exception Breakpoints,此項表示所有異常都會被觸發(fā)
如果只想觸發(fā)某種異常可以點擊"+",選中Java Exception Breakpoints,然后輸出該種異常
除了Java Exception Breakpoints還有Exception Breakpoints,前者只支持Java本身的異常,后者支持自定義異常
如圖:

異常斷點.png

字段斷點和方法斷點

抓住關鍵方法或字段來追蹤應用程序的運行軌跡
字段斷點的觸發(fā)條件是字段值被更改,方法斷點是方法被調用

場景:適用于類似多線程下的復雜場景

使用:在字段那行、在方法聲明的那行單擊即可
如圖:

字段斷點.png

調試中的變量

Add New Watch

作用:添加一個觀察表達式,在變量觀測區(qū)執(zhí)行一個表達式并得到它的值

使用:在面試左側點擊綠色“+”,或者點擊右鍵在菜單中選擇New Watch, 就會出現(xiàn)一個框,輸入表達式即可
如圖:

add new watch.png

add new watch.png

Evaluate Expression

計算表達式
作用:可以輸出代碼中表達式的值

使用
debug狀態(tài)下,右擊選擇Evaluate Expression
如圖:

Evaluate Expression.png

觀察變量

作用:Evaluate Expression的簡化版

使用:Alt+鼠標左鍵 在變量上面點擊
如圖:

觀察變量.png

設置變量的值

作用:變量的值除了可以被觀察之外,還可以在運行時改變。此功能在實際調試中特別實用

使用:設置變量的方法:

  • 在變量觀測區(qū)右鍵單擊變量,在菜單中選中set value
  • 鼠標懸浮在代碼區(qū)中的某個可訪問的變量上,在彈出的浮層里更改值

如圖:


設置變量.png

其他

Force Run to Cursor

作用:忽視已經(jīng)存在的斷點,直接跳到光標的所在行,很實用!

Drop frame

作用:只在單元測試(JUnit )下起作用。用在錯過出錯的時刻,可以回到當前的方法被調用的地方,沒錯,時光倒流

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容