色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

如何用IDEA調(diào)試BUG的幾種方法

瀏覽:120日期:2024-09-02 13:52:10

最近小明的bug有點多,忙的連王者榮耀都顧不上玩了,導(dǎo)致現(xiàn)在不得不抽點時間研究一下作為當(dāng)前大多Java程序員開發(fā)工具的IDEA DEBUG功能,以提高效率。

一、條件斷點

場景:我們在遍歷某個集合,期望程序在滿足某些預(yù)設(shè)條件時停住,比如:沐芳老師在課堂上點名,需要在點到小明的時候暫停確認(rèn)一下是否有人在幫小明答“到”!

那沐芳老師可以這樣:

如何用IDEA調(diào)試BUG的幾種方法

右擊斷點旁邊的小紅點(斷點),彈出面板,在Condition這里填入暫停條件,這樣調(diào)試時,當(dāng)程序滿足條件時就會穩(wěn)穩(wěn)地停在student= '小明'的位置。

二、回到'過去'

場景:人非圣賢,孰能無過。在日常開發(fā)中,大家都有手殘的時候,比如在調(diào)試一個業(yè)務(wù)邏輯比較復(fù)雜,有多個方法嵌套時,一不小心手抖,斷點過去了,這該怎么辦?

這天,沐芳老師如往常一樣在上課前點名,當(dāng)點到小明的時候,不爭氣的小明在偷偷看喜歡的妹子,沒有注意聽,當(dāng)反應(yīng)過來時,已經(jīng)錯過了答到!十分懊悔(紅顏禍水啊),這時小明就可以借用大雄的機器貓進(jìn)行時光穿梭:

如何用IDEA調(diào)試BUG的幾種方法

觀察上圖,我們看到,按照點名順序,現(xiàn)在沐芳老師點名已經(jīng)輪到小紅,小明已經(jīng)錯過答到,機器貓可以這樣幫助小明:點擊上圖紅色框框圈中的Drop Frame圖標(biāo)(如果存在多個方法的嵌套調(diào)用,可以多點幾下),就這樣,小明穿越了,沒有錯過這次的答到:

如何用IDEA調(diào)試BUG的幾種方法

tips:這個按鈕之所以叫做Drop Frame,是因為JVM內(nèi)部是以棧幀為單位來保存線程的運行狀態(tài),Drop Frame直譯過來就是扔掉當(dāng)前運行的棧幀,回到上一幀的位置,這樣就實現(xiàn)了穿越。

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

終于老師點名結(jié)束了,現(xiàn)在可以正常上課了。到了同學(xué)們最愛的老師提問,同學(xué)們搶答的環(huán)節(jié)。

As we know 當(dāng)我們啟動多個線程時,哪個線程內(nèi)的程序先執(zhí)行,完全靠CPU的心情(爸爸一樣的存在),這樣就會造成一個問題:無法像單線程那樣按照執(zhí)行順序debug。現(xiàn)象就是你只管打斷點,線程之間不亂跳算我輸,程序舉例如下:

如何用IDEA調(diào)試BUG的幾種方法

老師提出問題后,四個同學(xué)開始搶答:

如何用IDEA調(diào)試BUG的幾種方法

這么多同學(xué)搶答,讓堅守崗位30多年的沐芳老師覺得再這樣下去課堂可能會有點混亂:但這并難不倒從業(yè)30多年的沐芳老師,她按如下圖所示:在斷點的位置上右擊,選擇Thread,就可以有目的地跟蹤某一位同學(xué)的搶答情況(一切都在掌握之中)。

如何用IDEA調(diào)試BUG的幾種方法

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

大家能看到這里,小明不得不給大家介紹一個裝X的技能:云調(diào)試。即本機不用啟動項目,只要本機的源代碼與遠(yuǎn)程服務(wù)器運行的jar包匹配,就可以在本機直接遠(yuǎn)程調(diào)試服務(wù)器上的代碼!打開姿勢如下:

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

現(xiàn)在大多都是SpringBoot項目,因此我們在遠(yuǎn)程服務(wù)器上運行一個jar包時

java -server -Xms512m -Xmx512m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8080 -jar xiaoming.jar

這里起作用的核心命令就是

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

遠(yuǎn)程調(diào)試從技術(shù)上講,就是在本機與遠(yuǎn)程服務(wù)之間建立scoket通訊,所以本機要可以訪問到遠(yuǎn)程服務(wù)的端口。

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

如何用IDEA調(diào)試BUG的幾種方法

接下來我們就可以正常調(diào)試了,調(diào)試方式和本地運行服務(wù)調(diào)試無差,不信你發(fā)起一個請求,并在對應(yīng)的邏輯代碼中打個斷點試試?

五、臨時執(zhí)行表達(dá)式

再一個就是調(diào)試時,我們還可以臨時執(zhí)行一些表達(dá)式,點擊紅色框框選中的圖標(biāo),然后輸入你想執(zhí)行的表達(dá)式,如下所示:

如何用IDEA調(diào)試BUG的幾種方法

大家可以看到,小明心靈是多么脆弱,因為無法直面自己的實際年齡,再快要得到真實年齡是,偷偷的減去了7年,所以他實際年齡永遠(yuǎn)為18歲(手動滑稽)。

六、修改變量的運行值

當(dāng)然,如果調(diào)試時,想動態(tài)修改變量的值,也很容易,在變量上右擊,然后選擇Set Value,比如簡單粗暴的更改小明的年齡為18……

如何用IDEA調(diào)試BUG的幾種方法

以上,這就是小明近期總結(jié)的IDEA的DEBUG技巧,希望可以幫助到大家。善用上述調(diào)試技巧,相信大家擼起代碼來會更加有感覺,更多相關(guān)IDEA調(diào)試BUG內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: IDEA
相關(guān)文章:
主站蜘蛛池模板: 久久91亚洲精品中文字幕 | 成人免费观看网欧美片 | 欧美成人高清手机在线视频 | 国产男女视频在线观看 | 成年人午夜免费视频 | 日本欧美一区二区三区片 | 看国产一级片 | 日本成人在线免费观看 | 丝袜美腿在线不卡视频播放 | 亚洲成人免费视频在线 | 一级特级aaaa毛片免费观看 | 成人午夜视频免费观看 | 亚洲男人网 | 国内精品九一在线播放 | 久久er视频| 成人亚洲国产 | 97dyy影院理论片 | 亚洲最新 | 一级高清毛片免费a级高清毛片 | 国产99视频精品免费观看9e | 韩国自拍偷自拍亚洲精品 | 国产亚洲在线 | 九九精品视频在线播放8 | 一级女性全黄久久生活片免费 | 久久久久免费精品国产 | 97香蕉久久夜色精品国产 | 国产欧美日韩综合一区二区三区 | 国产精自产拍久久久久久蜜 | 亚洲深夜福利视频 | 久草视频精品 | 日韩三级小视频 | 国产在线激情视频 | 久在线观看视频 | 女人张开腿 让男人桶视频 女人张开腿等男人桶免费视频 | 99毛片| 美女三级毛片 | 国内主播福利视频在线观看 | 久久精品国产精品亚洲艾 | 亚洲国产美女视频 | 亚洲最大看欧美片网站 | 日韩成人在线观看视频 |