你不知道的 IDEA Debug 调试小技巧!
點(diǎn)擊上方“朱小廝的博客”,選擇“設(shè)為星標(biāo)”
后臺回復(fù)”加群“加入公眾號專屬技術(shù)群
來自:http://suo.im/4vlcHB
1、多線程調(diào)試斷點(diǎn)
Intellij IDEA 的debug斷點(diǎn)調(diào)試是有一個(gè)模式的選擇的,就像下面這張圖,平時(shí)我們都使用的是默認(rèn)的 ALL(在Eclipse中默認(rèn)是線程模式) ,這種模式我們只能將一個(gè)線程斷下來,但其他線程卻已經(jīng)執(zhí)行過了;而將其改為 Thread 后,就可以多個(gè)線程都斷下來,并且可以很方便的切換線程的執(zhí)行流程,這就是多線程調(diào)試。
在debug控制臺能夠很方便的查看線程的執(zhí)行狀態(tài),也可以很方便的選擇某個(gè)線程去執(zhí)行:
2、回退斷點(diǎn)
不知道大伙有沒有遇到這樣一個(gè)問題,當(dāng)我們進(jìn)行debug時(shí),通常不會進(jìn)入某個(gè)方法一步一步的執(zhí)行,而是選擇性的跳過;當(dāng)你想要回頭觀察某個(gè)變量的值得變化時(shí),而你剛好沒有跟進(jìn)去,跳過了這個(gè)方法,這個(gè)時(shí)候,變量就被賦值了,我們通常的做法是重來一次。
其實(shí)IDEA的調(diào)試功能是非常強(qiáng)大的,我們來看看熟悉的調(diào)試窗口:
使用紅色框框出來的部分,表示當(dāng)前程序執(zhí)行到哪一塊,哪一部分,你可以嘗試用鼠標(biāo)點(diǎn)點(diǎn)看,你會發(fā)現(xiàn)編輯器會跳轉(zhuǎn)到對應(yīng)的代碼中,當(dāng)然當(dāng)前斷點(diǎn)的位置通常會在列表的第一條。然后我們使用右鍵單擊,你就可以看到如下圖所示:
或者你也可以在下圖中找到 Drop Frame:
在IDEA中,所謂的回退,叫 Drop Frame,選擇Drop Frame后,程序會跳轉(zhuǎn)回調(diào)用當(dāng)前這個(gè)方法的地方,當(dāng)然已經(jīng)改變的值是不會恢復(fù)的。但是當(dāng)該方法再次被調(diào)用時(shí),你可以觀察到某個(gè)變量什么時(shí)候被改變,至少我們不用再去重新運(yùn)行一遍程序。
3、條件斷點(diǎn)
條件斷點(diǎn)就是當(dāng)滿足某個(gè)條件(通常是表達(dá)式)時(shí),debug斷點(diǎn)才會生效;這在循環(huán)中debug是非常有用的;例如我們想要在循環(huán)體中調(diào)試:當(dāng)某個(gè)變量滿足某個(gè)條件時(shí),需要斷點(diǎn)調(diào)試,來查看詳細(xì)的執(zhí)行流程及變化情況。
我們說過,IDEA中的debug功能是非常強(qiáng)大的,要使用條件斷點(diǎn)也非常簡單,下面這張圖片中 Condition中的內(nèi)容代表當(dāng)name為eamon:23時(shí),程序執(zhí)行到斷點(diǎn)處停下來。
有了條件斷點(diǎn),這樣一來,那些不相關(guān)和我們不關(guān)心的代碼就可以直接跳過了。
4、臨時(shí)斷點(diǎn)
所謂臨時(shí)斷點(diǎn)就是只斷一次,IDEA默認(rèn)斷點(diǎn)會一致存在。如果你只需要暫停一次,那么使用臨時(shí)斷點(diǎn)會比較方便,因?yàn)闀和R淮沃髷帱c(diǎn)就自動(dòng)消失了,不用手動(dòng)取消。
臨時(shí)斷點(diǎn)可以通過在打斷點(diǎn)時(shí)按住 Alt 或者 option 鍵,然后創(chuàng)建斷點(diǎn)。也可以通過右鍵斷點(diǎn)處,選擇?more?然后在窗口中選中?Remove once hit
5、求值計(jì)算
求值計(jì)算功能在我們debug過程中,可以很方便的查看程序中所有變量的值,也可以臨時(shí)修改程序中變量的值,這個(gè)功能能在一定程度上輔助我們進(jìn)行代碼調(diào)試。
這個(gè)功能可以在debug時(shí)在debug窗口打開:
打開后是這樣的:
然后你就可以在表達(dá)式輸入框中,輸入你想要的操作,比如,查看變量、修改變量(臨時(shí)的)、調(diào)用某個(gè)方法等;這些操作結(jié)果將會在下方的Result 窗口中輸出。
想知道更多?掃描下面的二維碼關(guān)注我
怎么加群?:
怎么免費(fèi)加入知識星球:
免費(fèi)資料入口:后臺回復(fù)“666”
朕已閱?
總結(jié)
以上是生活随笔為你收集整理的你不知道的 IDEA Debug 调试小技巧!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis从入门到精通,至少要看看这篇!
- 下一篇: HTTPS虐我千百遍,我却待她如初恋!