android studio調(diào)試技巧

純粹是個(gè)人學(xué)習(xí)總結(jié),如有不對(duì)的地方請(qǐng)吐槽。

調(diào)試基礎(chǔ),在這就不說(shuō)了,進(jìn)入正文

Evaluate Expression

這個(gè)功能非常實(shí)用,可以在斷點(diǎn)處直接進(jìn)入一個(gè)求值環(huán)境,在這里你可以執(zhí)行任何你感興趣的表達(dá)式;如下圖:

image.png

條件斷點(diǎn)

假設(shè)你的斷點(diǎn)在一個(gè)列表的循環(huán)里面,可是你只對(duì)這個(gè)列表的某一個(gè)元素感興趣,只想在遇到這個(gè)元素的時(shí)候才斷下來(lái);你是一直人肉 F9 直到滿足條件嗎?條件斷點(diǎn)就是滿足這種需求的,顧名思義,在特定條件下的斷點(diǎn)。使用起來(lái)也非常簡(jiǎn)單,在你的斷點(diǎn)上鼠標(biāo)右鍵會(huì)出現(xiàn)一個(gè)小窗口,寫上條件即可。

image.png

日志斷點(diǎn)

很多時(shí)候我們調(diào)試的時(shí)候更多的是打印日志定位異常代碼,縮小范圍之后再使用斷點(diǎn)解決問(wèn)題;所以經(jīng)常做的事情就是在代碼里面添加日志信息,輸出函數(shù)參數(shù),返回信息,輸出我們感興趣的變量信息等。

首先我們?cè)谙胍敵鲂畔⒌牡胤较乱粋€(gè)斷點(diǎn);然后右鍵這個(gè)斷點(diǎn),在出現(xiàn)的設(shè)置框里面把這個(gè)斷點(diǎn)的 suspend 屬性設(shè)置為 False ,這樣雖然叫做“斷點(diǎn)”,但是并不會(huì)真正斷下來(lái);然后,我們?cè)?log message 里面填上我們想要輸出的日志信息。如下圖(注意標(biāo)紅位置):

image.png

方法斷點(diǎn)

傳統(tǒng)的調(diào)試方式是以行為單位的,所謂單步調(diào)試;但是很多時(shí)候我們關(guān)心的是某個(gè)函數(shù)的參數(shù),返回值;(回想一下我們使用日志的時(shí)候打印的最多的信息難道不是函數(shù)的參數(shù)和返回值嗎?)使用方法斷點(diǎn),我們可以在函數(shù)級(jí)別進(jìn)行調(diào)試;如果經(jīng)常跳進(jìn)跳出函數(shù)或者只對(duì)某個(gè)函數(shù)的參數(shù)感興趣,這種類型的斷點(diǎn)非常實(shí)用。具體使用方法有兩種方式;最簡(jiǎn)單的是在你感興趣的方法頭那一行打上斷點(diǎn),這時(shí)候你會(huì)發(fā)現(xiàn)斷點(diǎn)圖標(biāo)有點(diǎn)不一樣,這就是方法斷點(diǎn)了,如下圖:

image.png

異常斷點(diǎn)

在有些情況下,我們只對(duì)某些特定的異常感興趣,或者我們只對(duì)異常感興趣;我們希望只要程序發(fā)生異常程序就能斷下來(lái);這好像保存現(xiàn)場(chǎng)一樣,只要發(fā)生命案了(異常),第一時(shí)間保存現(xiàn)場(chǎng),這樣什么指紋之類的線索就會(huì)清晰很多,壞蛋就算想逃也是插翅難飛啊。

Android Studio給了我們這個(gè)能力!那就是異常斷點(diǎn)!可以在特定異常發(fā)生的時(shí)候,直接讓整個(gè)程序斷下來(lái);如果你對(duì)所有異常感興趣,直接 Throwable 即可。

具體做法是,進(jìn)入 Run -> View BreakPoints 或者使用快捷鍵打開(kāi)斷點(diǎn)設(shè)置窗口;如下圖:

image.png

點(diǎn)擊左上角的 ? ,會(huì)出現(xiàn)一個(gè)選擇框;選擇Exception Breakpoint;然后會(huì)出現(xiàn)一個(gè)對(duì)話框,選擇你感興趣的異常:

image.png

變量斷點(diǎn)

在每個(gè)變量在不知道的情況下被改了值,可以用這個(gè)斷點(diǎn)來(lái)查看。

image.png
image.png

原文地址丟失

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

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

  • Android Studio目前已經(jīng)成為開(kāi)發(fā)Android的主要工具,用熟了可謂相當(dāng)順手。作為開(kāi)發(fā)者,調(diào)試并發(fā)現(xiàn)b...
    7d3fadbb4407閱讀 610評(píng)論 0 3
  • Android Studio目前已經(jīng)成為開(kāi)發(fā)Android的主要工具,用熟了可謂相當(dāng)順手。作為開(kāi)發(fā)者,調(diào)試并發(fā)現(xiàn)b...
    涅槃1992閱讀 51,087評(píng)論 36 366
  • Android Studio目前已經(jīng)成為開(kāi)發(fā)Android的主要工具,用熟了可謂相當(dāng)順手。作為開(kāi)發(fā)者,調(diào)試并發(fā)現(xiàn)b...
    StChris閱讀 1,838評(píng)論 0 16
  • 條件斷點(diǎn):調(diào)試中可以直接直接賦值,減少調(diào)試時(shí)間,通過(guò)右鍵斷點(diǎn)(或在Debug視圖上的BreakPoint列表上)對(duì)...
    詹徐照閱讀 2,391評(píng)論 0 49
  • 《讀清明上河圖》 穿越時(shí)空到宋朝,置身鬧市步逍遙。 噭噭古語(yǔ)難解意,淳淳民風(fēng)知樂(lè)陶。 尋馥覓郁覩沉香...
    秋英煥煥閱讀 873評(píng)論 0 3

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