前言:
技術但求每天進步一點,不求一蹴而就。
作爲一個開發,Debug是不可缺少的技能,如果一個開發Debug都不熟悉的話,那他肯定不是一個好的開發。下面我分享下我工作中常用的的那些Debug.
從上面的圖可以看出斷點是分類的
1 --行斷點(每一行的斷點)
2 --方法斷點
3 --異常斷點
他們之間的圖標也是不一樣的
1.行斷點
1.條件斷點
什麼是條件斷點?意思是等到一定的條件的時候,才發觸發這個Debug
實用場景 :
假如有一段代碼for循環寫的,你需要在第999次的時候debug的時候怎麼處理(不知道有沒有朋友面試的時候遇到過這個問題)
如何使用:
在你打斷點的地方,就是圖中的紅點處,右鍵就出現這個畫面,輸入你的條件就OK
2 字段和方法斷點
抓住關鍵方法或字段來追蹤應用程序的運行軌跡
字段斷點的觸發條件是字段值被更改,方法斷點是方法被調用
場景:適用於類似多線程下的複雜場景
使用:在字段那行、在方法聲明的那行單擊即可
如下圖所示
下面可以看到在那個線程運行
下面分析一些常用快捷鍵
Evaluate Expression
計算表達式
作用:可以輸出代碼中表達式的值
使用:debug
狀態下,右擊選擇Evaluate Expression
如下圖所示
或者
使用:Alt+鼠標左鍵 在變量上面點擊
2.異常觸發的斷點
什麼是異常觸發斷點就是android運行的時候拋出的異常
實用場景 :
加入開發中遇到一些bug,沒有一點頭緒的時候,或者沒有給出準確的位置的時候
如何使用:
圖標1是點擊的時候彈出該圖框
圖2 是java自帶的一些異常
圖3是自定義的異常拋出
點擊DONE後就可以
下面介紹一些圖標
1 ------是普通的運行
2 -------是Debug的運行
3 -------將運行狀態切換到debug模式
在這裏重點介紹下第三個按鈕,因爲用的多點
app處於運行的狀態
點擊的時候會彈出一個框叫你選擇哪個進程處於debug模式
1.是下一步,單步執行
2 進入到方法中,必須是自定義的方法(不可以執行3)
3.可以進入到源碼中(同時可執行2)
4.跳出正在執行的方法
從上到下依次爲:
- 運行至下一斷點,(從暫停)恢復程序
- 暫停程序
- 關閉調試
- 查看斷點
- 隱藏斷點(breatpoints)
- 查看線程堆棧