android studio 斷點調試


  • 斷點調試的啟動方式

 android studio啟動斷點調試的方法有兩種,其一是下好斷點,然后點擊1以Debug的形式編譯運行程序。

第二種方式是在程序運行中啟動斷點調試。方式:啟動app后,點擊RUN—>image,彈出如下的提示框:

image

在需要的地方打斷點,條件出發后就可以直接進入調試模式。

  • 斷點調試的基本操作

       image 從箭頭所指的位置開始,

第一個為step over,點擊該按鈕程序執行下一行,如果當前行為方法調用,這個方法將會被直接執行完畢,然后進行下一行,不會進入方法內。

第二位step into 點擊這個按鈕時,如果當前代碼為自定義方法,程序會進入方法內逐步運行,但不會進入官方庫提供的方法內部。否則將進行運行至下一行

第三位force step into 該按鈕與第二位相似,不同的是,點擊此按鈕會進入任何方法內部。該功能會使你脫離當前的斷點,而是從你選擇的方法開始時進行調試。

第四位step out 該按鈕會快速運行完該方法,跳出當前執行的方法內部,達到該方法調用的下一句。

第五位drop frame.該按鈕會使你回到調用該方法的開始處,讓你繼續調試。此方法與step out的不同之處為,step out會運行完通過step into跳入的方法,數據改變,而drop frame 會跳到該方法調用的開始處,恢復原始初始值,可以重新運行該方法。

第六位run to cursor 該按鈕會使程序跳轉至下一斷點處。當設有多個斷點時逐句運行會很麻煩,可以通過該功能快速跳轉至下一斷點。

第七位Evaluate expression。當程序運行到某一個斷點的時候,恰好你對該處的某對象的某些屬性很感興趣,那么可以通過該按鈕跳出

Evaluate expression窗口,在該窗口處可以輸入你感興趣的表達式,然后點擊evaluate按鈕,你就可以得到想要知道的結果了了。如圖所示image

 

  • 條件斷點

當你的斷點在一個循環里的時候,而你又只對其中的某個元素感興趣,逐步調試會變得很麻煩,這個時候條件斷點可以極大的提高效率。條件斷點是指當程序運行滿足你指定的條件時,程序才會斷下來,使用方法也非常簡單,在你的斷點處右鍵會彈出下面的小窗口,寫上你的條件即可

image

  • 日志斷點

該斷點並不能算真正意義上的斷點,因為日志斷點並沒有是程序斷下來,而是在你需要的地方輸出你需要的信息。這種斷點像log一樣快速的輸出你所需要的信息,從而判斷問題出錯的地方。使用方式類似條件斷點,在斷點處右鍵彈出如圖所示的窗口,在紅色標注框一的“suspend”處取消選中,紅色框二處輸入你感性興趣的日志信息。圖二為運行結果

imageimage

  • 方法斷點

如果我們只想知道方法調用時的參數或者返回的結果,而對方法的運行的過程並不感興趣的時候,方法斷點是非常明智的選擇。我們只需要在感興趣的方法的第一行答上斷點即可。如圖所示你會發現該斷點圖標的不同之處

image

  • Field WatchPoint

當你需要監測某個變量的變化時,這種斷點方式可以有效的幫助你。斷點的方式和方法斷點相似,你只需要在該變量命名的地方打上斷點,斷點的圖標也會稍有不同。右鍵該斷點可以設置一些屬性,比如你是要在變量訪問的時候停下來還是在變量改變的時候停下來。

  • 異常斷點(Exception Breakpoint)

如果你對程序發生的異常感興趣,Exception Breakpoint是非常不錯的選擇,當程序運行發生異常時,直接讓程序停下來,保留事故發生的現場,你可以即使有效的發現問題的原因以及異常發生的位置。使用方式:進入RUN—>View BreakPoints,彈出如下窗口:

image

點擊左上角的加號,彈出如下窗口,選擇第三個

image

在下面的窗口輸入你感興趣的異常信息即可。當程序發生該異常時就會自動斷下來。

image

  • 設置變量的值

在調試過程中,你發現某個變量的值跟你預期的結果不一樣,或者你懷疑某變量這出現某些特殊值時程序會發生崩潰,而當前測試環境又極難模擬這種情況,那么你可以在調試模式時,如圖所示,在變量區右鍵你想監控的變量,設置你想要出現的值,然后繼續運行。

image

android studio提供的調試手段遠不止這些,需要在開發過程中逐步去發現探索。

參考

Android Studio你不知道的調試技巧         

基本斷點debug調試技巧

 Android Studio調試功能使用總結【轉】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM