AndroidStudio你不知道的除錯技巧

吳鎮佳發表於2017-03-02

AndroidStudio 你不知道的除錯技巧

常見的單行斷點除錯這裡不用多說,直接上那麼你所不知道而且又特別有價值的除錯技巧。

1.異常斷點

在我們日常開發中或者線上出現crash都是特別常見的事情,我們都知道出現了Exception,可是每次出現crash都要去檢視日誌具體出現什麼異常,異常出現在哪一行,這是非常頭疼的問題,因為列印出現的關鍵堆疊信心早已被一大堆的系統日誌和App日誌所淹沒了。我們希望的是,只要程式一出現異常,就能夠斷下來。AndroidStudio提供了異常斷點,可以在特定異常發生的那一刻,直接讓整個程式停下來,斷在異常的那一行程式碼。

操作流程是:進入Run->View BreakPoint或者用快捷鍵開啟View BreakPoint,
在Java Exception BreakPoint 那一欄鉤上Any Exception,Done。如圖:

mmmm.png

然後進入debug模式,一旦你的程式碼出現異常,立馬保留現場,停在出現異常的程式碼行!!

當然你也可以指定特定的異常情況,例如NullPointerException,IllegalArgumentException等。
操作流程是:在View BreakPoint,點選左上角的,選擇Java Exception BreakPoint,彈出輸入框後輸入你指定的異常。如圖:

fsdf.png

dfsdf.png

2.條件斷點

有時我們需要在一個列表的迴圈中斷點,但是我們感興趣的僅僅其中某一個元素,難道我們要人肉的去從0元素除錯到我們感興趣的那個元素嗎,這是不需要的,因為有了條件斷點。
操作流程是:在迴圈裡面的斷點出,兩個手指雙擊斷點,出現一個小視窗,寫上條件即可。

fdfha.png

進入debug模式,直接跳到輸入條件的地方。如圖:

fsfs.png

3.日誌斷點

我們在開發中時候經常會關鍵程式碼出列印日誌,如果在除錯期間某個關鍵點發現需要列印日誌,這時重新寫上列印日誌程式碼,重新編譯,大專案等待時間一般都要幾分鐘或者十幾分鍾,非常痛苦。這時我們可以用日誌斷點,也可以列印出日誌。
操作流程:首先在輸出的地方加上斷點,兩個手指雙擊斷點,點選more,然後把suspend屬性設定為false,然後在輸入框裡填上我們需要輸出的日誌資訊,如圖:

dfsdfd.png

這樣在debug模式下,每次程式碼執行到這個斷點的位置,這個斷點並不會停下來,而是輸出我們輸入的日誌資訊,然後繼續執行。日誌在控制檯輸出如圖:

貼上圖片.png

4.域斷點

有時我們遇到一些非常奇怪的bug,成員變數無緣無故不知道被哪一行程式碼修改了,特別時在多執行緒的情況下,更是難以分析情況,這是我們可以用域斷點,它的作用是在某一個域被訪問或者修改的時候讓程式斷下來。非常有助於我們分析這類問題。
操作流程:在對應的域上加上斷點即可。


相關文章