android-Debug斷點調(diào)試

作為開發(fā)者,不光得會開發(fā),遇到問題的時候還得會去解決問題,開發(fā)中去嘗試找問題的原因的方式主要是去debug代碼,這樣會比直接去看代碼,要清晰和直觀的多,而AS的debug功能齊全的不要不要的,今天就學習了之前不了解的強大的debug功能。
依然不會忘記從最簡單和最常見的debug功能開始介紹,學習參考AS-Debug

開啟Ddbug模式

debug的開啟方式我了解到有兩種,一種是直接以debug的方式編譯運行,此時就處于debug模式了:


image.png

這個方式就是以debug模式啟動,之后就可以進行debug操作了。
還有一種方式當你已經(jīng)處于運行非Debug模式的情況,但想進行調(diào)試,此時可以進行如下操作:


image.png

或者是:
image.png

然后選擇我們要debug的進程,也可以進入到debug模式。

開啟簡單的Debug

我給一個簡單的程序加上斷點(斷點應(yīng)該會加吧),


image.png

啟動斷點開始簡單調(diào)試:在斷點出觸發(fā)


image.png

斷點操作區(qū)

接下來介紹斷點的操作:


image.png

第一個:為分步調(diào)試,每操作一次就會執(zhí)行一步,從當前斷點往下執(zhí)行,且相關(guān)變量都會展示出來。
第二個:當調(diào)試執(zhí)行到有方法調(diào)用的時候,進行該操作,會進入到方法體內(nèi)部進行執(zhí)行,如果是類庫中的方法則不進入。
第三個:可以進入到你調(diào)用方法的全部流程,類庫的方法也能進入。
第四個:為可以直接從當前斷點跳到下一個斷點,斷點完后,會執(zhí)行調(diào)起斷點的方法的下一步。
第五個:執(zhí)行到光標處.
最后一個類似計算器的功能鍵,是一個求值表達式功能鍵,可以在執(zhí)行處添加相關(guān)表達式,也可以對指定的變量處進行此操作。

斷點操作區(qū)左邊第一個為將光標跳轉(zhuǎn)到當前斷點執(zhí)行處。


image.png

圖中分別為方法調(diào)用棧區(qū)和線程信息區(qū)。

斷點管理區(qū)

image.png

第一個:停止目前的應(yīng)用,重新啟動.
第二個:可以直接跳轉(zhuǎn)到下一個斷點區(qū).
第三個:暫停調(diào)試.
第四個:斷點調(diào)試終止.
第五個:斷點管理區(qū). 可以對斷點進行管理,添加斷點的屬性,比如可以添加異常斷點之類.比如添加空指針異常.
第六個:斷點狀態(tài)切換,比如可以臨時取消斷點等 .

setting按鈕可以對斷點調(diào)試時進行相關(guān)設(shè)置,比如返回值的和變量值的實時顯示:


image.png

此處還有個線程功能的按鈕
image.png

以及對線程信息操作:


image.png

總結(jié)

在進行簡單調(diào)試的時候我們只要觀察執(zhí)行處,相關(guān)變量的顯示,以及控制臺變量區(qū)的相關(guān)變量的的顯示以及變化,來達到觀察執(zhí)行引起的變化。
變量觀察區(qū)可以對指定變量進行觀察:


image.png

image.png

通過指定方式可以改變變量值進行實時反饋


image.png

基本的操作相信其實大家都會,接下來介紹一些其他功能.

開啟Debug的騷操作

條件斷點

有時候在做調(diào)試的時候,遇到在循環(huán)條件中進行debug,之前不了解條件斷點的時候,我經(jīng)常會直接寫個if語句來進行直接到指定條件斷點。但是了解了接下來的條件斷點后,根本不需要這么麻煩:
首先在你加的斷點處右鍵就會出現(xiàn)這么一個玩意兒:


image.png

輸入框就可以輸入你需要斷點時候的條件,那么斷點就會在指定條件下斷點,是不是比加個if更方便.

臨時斷點

有時候在做斷點調(diào)試的時候,需要臨時查看某個語句的執(zhí)行結(jié)果,但執(zhí)行結(jié)束后又希望它取消斷點,就可以給它添加臨時斷點.
添加方式是:鼠標:ALT+鼠標左鍵 在斷點區(qū)點擊


image.png

那么這個斷點就只會執(zhí)行一次后自動消失.

失效斷點

這個用作于,在調(diào)試的時候,我們對于某個斷點希望它臨時失去作用,但是保留其斷點的位置。
ALT+鼠標左鍵 在斷點上點擊


image.png

那么這種臨時斷點在調(diào)試的時候就會忽略其存在.

日志斷點

在做開發(fā)的時候喜歡打log,來識別當前運行狀況,但是打log,感覺太麻煩,我們就可以使用日志斷點。
在斷點上點擊鼠標右鍵,把suspend置為非選中狀態(tài),然后在下面的Log evaluated Expression填寫上你需要輸出的信息


image.png

image.png

非常方便的打出log.

表達式調(diào)試

這個我覺得相當于搜索功能,根據(jù)你給定變量的表達式,可以快速的反饋變量情況:


image.png

對于變量的觀察非常便捷,不用通過去變量區(qū)進行查找.

便捷變量觀察

image.png

通過Alt+鼠標左鍵 在變量上面點擊,便可對相關(guān)變量進行觀察.

標記

給特定變量進行標記:
選擇變量->鼠標右鍵,選擇mark object


image.png

我們可以標識集合中的某個特定實例進行觀察


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

相關(guān)閱讀更多精彩內(nèi)容

  • 大家好,我是光源。 距離上次寫博客已有大半年,時間真是如突如其來的 bug —— 一刻不停歇。這段時間雖全身心撲在...
    光源_Android閱讀 2,454評論 8 26
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,242評論 8 265
  • 如果你沒空看我扯淡,請直接拖拽到文末查看解決辦法 問題 App新增功能模塊,測試的時候出現(xiàn)了閃退的問題。修復(fù)個小B...
    yanlongRivenK閱讀 3,805評論 1 5
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,658評論 1 32
  • 我愛你,所以即使你滿頭白發(fā),步履蹣跚的奔跑在樹林里,在我眼里你依舊是當初那個少年模樣。 我愛你,所以在我有生之年,...
    啊猛小姐閱讀 316評論 0 0

友情鏈接更多精彩內(nèi)容