自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

IntelliJ IDEA調(diào)試技巧,比Eclipse強(qiáng)太多了!

開發(fā) 后端
今天分享一下 IntelliJ IDEA 的高級調(diào)試技巧,來看下有多騷,確實要比 Eclipse 強(qiáng)太多了!

大家周末愉快啊,今天分享一下 IntelliJ IDEA 的高級調(diào)試技巧,來看下有多騷,確實要比 Eclipse 強(qiáng)太多了!

一、條件斷點(diǎn)

循環(huán)中經(jīng)常用到這個技巧,比如:遍歷1個大List的過程中,想讓斷點(diǎn)停在某個特定值。

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

二、回到"上一步"

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

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

回到了method1剛開始調(diào)用的時候,變量i變成了99,沒毛病吧,老鐵們,是不是很6 :)

注:好奇心是人類進(jìn)步的階梯,如果想知道為啥這個功能叫Drop Frame,而不是類似Back To Previous 之類的,可以去翻翻JVM的書,JVM內(nèi)部以棧幀為單位保存線程的運(yùn)行狀態(tài),drop frame即扔掉當(dāng)前運(yùn)行的棧幀,這樣當(dāng)前“指針”的位置,就自然到了上一幀的位置。

三、多線程調(diào)試

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

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

如果想讓線程在調(diào)試時,想按自己的愿意來,讓它停在哪個線程就停在哪個線程,可以在圖中3個斷點(diǎn)的小紅點(diǎn)上右擊,

即:Suspend掛起的條件是按每個線程來,而非All。把這3個斷點(diǎn)都這么設(shè)置后,再來一發(fā)試試

注意上圖中的紅框位置,斷點(diǎn)停下來時,這個下拉框可以看到各個線程(注:給線程起個容易識別的名字是個好習(xí)慣!),我們可以選擇線程“天空中的飛鳥”

斷點(diǎn)如愿停在了第2句詩。另外,想學(xué)更多技巧,可以關(guān)注微信公眾號:Java技術(shù)棧,在后臺回復(fù):idea,獲取我整理的 N 篇 IDEA 干貨。

四、遠(yuǎn)程調(diào)試

這也是一個裝B的利器,本機(jī)不用啟動項目,只要有源代碼,可以在本機(jī)直接遠(yuǎn)程調(diào)試服務(wù)器上的代碼,打開姿勢如下:

4.1 項目啟動時,先允許遠(yuǎn)程調(diào)試 

  1. java -server -Xms512m -Xmx512m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt\_socket,server=y,suspend=n,address=9081 -Djava.ext.dirs=. ${main\_class} 

起作用的就是 

  1. -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081 

注意:遠(yuǎn)程調(diào)試從技術(shù)上講,就是在本機(jī)與遠(yuǎn)程建立scoket通訊,所以端口不要沖突,而且本機(jī)要允許訪問遠(yuǎn)程端口,另外這一段參數(shù),放要在-jar 或 ${main_class}的前面

4.2 idea中設(shè)置遠(yuǎn)程調(diào)試

然后就可以調(diào)試了

前提是本機(jī)有項目的源代碼 ,在需要的地方打個斷點(diǎn),然后訪問一個遠(yuǎn)程的url試試,斷點(diǎn)就會停下來。

五、臨時執(zhí)行表達(dá)式/修改變量的運(yùn)行值

調(diào)試時,可以臨時執(zhí)行一些表達(dá)式,參考下圖:點(diǎn)擊這二個圖標(biāo)中的任何1個都可以

點(diǎn)擊+號后,就可以在新出現(xiàn)的輸入框里輸入表達(dá)式,比如i+5

然后回車,馬上就能看到結(jié)果

當(dāng)然,如果調(diào)試時,想動態(tài)修改變量的值,也很容易,在變量上右擊,然后選擇Set Value,剩下的事,地球人都知道。

善用上述調(diào)試技巧,相當(dāng)大家擼起代碼來會更有感覺,祝大家使用愉快!

另外,想學(xué)更多技巧,可以關(guān)注微信公眾號:Java技術(shù)棧,在后臺回復(fù):idea,獲取我整理的 N 篇 IDEA 干貨。 

 

責(zé)任編輯:龐桂玉 來源: Java技術(shù)棧
相關(guān)推薦

2012-03-20 09:20:54

IntelliJEclipseJava

2013-06-07 10:18:00

EclipseIntelliJ ID

2011-04-27 09:39:53

EclipseIntelliJ

2017-11-30 15:25:04

EclipseGo項目

2023-10-11 16:12:07

2020-10-10 11:07:38

Java開發(fā)代碼

2013-04-10 09:46:29

EclipseJava

2011-02-22 16:09:53

Eclipse調(diào)試

2011-10-14 10:37:47

虛擬機(jī) 負(fù)載

2020-04-17 15:00:04

IntelliJIDEAJava

2023-11-05 19:46:56

JavaIntelliJ代碼

2012-05-18 15:37:01

JavaIntelliJ

2015-10-16 14:46:36

數(shù)據(jù)中心節(jié)水水消耗

2025-04-29 02:50:00

IntelliJIDEA遠(yuǎn)程調(diào)試

2019-06-03 10:07:20

Java開發(fā)代碼

2019-05-17 10:38:23

SpringBoot開發(fā)技術(shù)

2023-03-01 23:59:23

Java開發(fā)

2022-09-16 08:16:25

策略模式算法

2023-07-14 21:45:46

IDEA微服務(wù)項目

2021-09-13 08:20:13

Loki日志系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號