如何用IDEA調試BUG的幾種方法-創新互聯

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

創新互聯成立與2013年,是專業互聯網技術服務公司,擁有項目成都網站設計、網站建設、外貿網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元金堂縣做網站,已為上家服務,為金堂縣各地企業和個人服務,聯系電話:18982081108

一、條件斷點

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

那沐芳老師可以這樣:

如何用IDEA調試BUG的幾種方法

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

二、回到"過去"

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

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

如何用IDEA調試BUG的幾種方法

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

如何用IDEA調試BUG的幾種方法

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

三、多線程調試

終于老師點名結束了,現在可以正常上課了。到了同學們最愛的老師提問,同學們搶答的環節。

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

如何用IDEA調試BUG的幾種方法

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

如何用IDEA調試BUG的幾種方法

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

如何用IDEA調試BUG的幾種方法

四、遠程調試

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

遠程項目啟動時,先允許遠程調試

現在大多都是SpringBoot項目,因此我們在遠程服務器上運行一個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

遠程調試從技術上講,就是在本機與遠程服務之間建立scoket通訊,所以本機要可以訪問到遠程服務的端口。

在idea中設置遠程調試

如何用IDEA調試BUG的幾種方法

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

五、臨時執行表達式

再一個就是調試時,我們還可以臨時執行一些表達式,點擊紅色框框選中的圖標,然后輸入你想執行的表達式,如下所示:

如何用IDEA調試BUG的幾種方法

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

六、修改變量的運行值

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

如何用IDEA調試BUG的幾種方法

以上,這就是小明近期總結的IDEA的DEBUG技巧,希望可以幫助到大家。善用上述調試技巧,相信大家擼起代碼來會更加有感覺,更多相關IDEA調試BUG內容請搜索創新互聯建站以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持創新互聯建站!

另外有需要云服務器可以了解下創新互聯建站m.kartarina.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、建站服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前名稱:如何用IDEA調試BUG的幾種方法-創新互聯
網站路徑:http://m.kartarina.com/article34/cdcese.html

成都網站建設公司_創新互聯,為您提供定制開發微信小程序虛擬主機搜索引擎優化外貿建站網站排名

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計
主站蜘蛛池模板: 中文字幕无码日韩专区免费| 97在线视频人妻无码| 亚洲AV无码成H人在线观看| 国产高清无码视频| 亚洲精品无码久久久久AV麻豆| 久久中文精品无码中文字幕| 男人av无码天堂| 人妻无码中文字幕免费视频蜜桃| 亚洲AV无码一区二区三区DV| 人妻精品久久无码区| 久久久久久av无码免费看大片| 久久无码无码久久综合综合| 日产无码1区2区在线观看 | 国产精品爽爽V在线观看无码| 人妻少妇AV无码一区二区| AV大片在线无码永久免费| 精品无码三级在线观看视频| 日本无码WWW在线视频观看| 国产精品无码A∨精品影院| 亚洲精品无码成人AAA片| 无码AⅤ精品一区二区三区| 中文字幕无码日韩欧毛| 精品日韩亚洲AV无码一区二区三区| 亚洲无码精品浪潮| 久久精品无码一区二区三区不卡| 人妻精品久久无码专区精东影业| 亚洲av片不卡无码久久| 国产成年无码久久久久毛片| 日韩人妻无码精品系列| 超清无码一区二区三区| 人妻无码一区二区视频| 成人免费无码H在线观看不卡| 免费无遮挡无码视频在线观看| 内射精品无码中文字幕| 曰韩无码无遮挡A级毛片| 无码专区国产精品视频 | 尤物永久免费AV无码网站| 中文字幕精品三区无码亚洲| 亚洲精品无码永久在线观看男男| 在线精品自偷自拍无码中文| 无码人妻精品一区二区三区蜜桃|