這 5 條 IntelliJ IDEA 調(diào)試技巧太強(qiáng)了!

一、條件斷點(diǎn)

參考上圖,在斷點(diǎn)的位置,右擊斷點(diǎn)旁邊的小紅點(diǎn),會(huì)出來一個(gè)界面,在Condition這里填入斷點(diǎn)條件即可,這樣調(diào)試時(shí),就會(huì)自動(dòng)停在i=10的位置

二、回到"上一步"
該技巧最適合特別復(fù)雜的方法套方法的場景,好不容易跑起來,一不小心手一抖,斷點(diǎn)過去了,想回過頭看看剛才的變量值,如果不知道該技巧,只能再跑一遍。

參考上圖,method1方法調(diào)用method2,當(dāng)前斷點(diǎn)的位置j=100,點(diǎn)擊上圖紅色箭頭位置的Drop Frame圖標(biāo)后,時(shí)間穿越了

三、多線程調(diào)試
多線程同時(shí)運(yùn)行時(shí),誰先執(zhí)行,誰后執(zhí)行,完全是看CPU心情的,無法控制先后,運(yùn)行時(shí)可能沒什么問題,但是調(diào)試時(shí)就比較麻煩了,最明顯的就是斷點(diǎn)亂跳,一會(huì)兒停這個(gè)線程,一會(huì)兒停在另一個(gè)線程,比如下圖:

如果想希望下一個(gè)斷點(diǎn)位置是第2句詩句,可能要失望了:

如果想讓線程在調(diào)試時(shí),想按自己的愿意來,讓它停在哪個(gè)線程就停在哪個(gè)線程,可以在圖中3個(gè)斷點(diǎn)的小紅點(diǎn)上右擊,
即:Suspend掛起的條件是按每個(gè)線程來,而非All。把這3個(gè)斷點(diǎn)都這么設(shè)置后,再來一發(fā)試試

注意上圖中的紅框位置,斷點(diǎn)停下來時(shí),這個(gè)下拉框可以看到各個(gè)線程(注:給線程起個(gè)容易識(shí)別的名字是個(gè)好習(xí)慣?。覀兛梢赃x擇線程“天空中的飛鳥”
斷點(diǎn)如愿停在了第2句詩。
四、遠(yuǎn)程調(diào)試
這也是一個(gè)裝B的利器,本機(jī)不用啟動(dòng)項(xiàng)目,只要有源代碼,可以在本機(jī)直接遠(yuǎn)程調(diào)試服務(wù)器上的代碼,打開姿勢如下:
4、1 項(xiàng)目啟動(dòng)時(shí),先允許遠(yuǎn)程調(diào)試
java -server -Xms512m -Xmx512m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081 -Djava.ext.dirs=. ${main_class}
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081
4、2 idea中設(shè)置遠(yuǎn)程調(diào)試
五、臨時(shí)執(zhí)行表達(dá)式/修改變量的運(yùn)行值
鏈接:www.cnblogs.com/jun1019/p/9741224.html

