IntelliJ IDEA 調試技巧,比 Eclipse 強太多了!

2021-02-13 Python愛好者社區

今天分享一下 IntelliJ IDEA 的高級調試技巧,來看下有多騷,確實要比 Eclipse 強太多了!

一、條件斷點

循環中經常用到這個技巧,比如:遍歷1個大List的過程中,想讓斷點停在某個特定值。

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

二、回到"上一步"

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

參考上圖,method1方法調用method2,當前斷點的位置j=100,點擊上圖紅色箭頭位置的Drop Frame圖標後,時間穿越了

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

註:好奇心是人類進步的階梯,如果想知道為啥這個功能叫Drop Frame,而不是類似Back To Previous 之類的,可以去翻翻JVM的書,JVM內部以棧幀為單位保存線程的運行狀態,drop frame即扔掉當前運行的棧幀,這樣當前「指針」的位置,就自然到了上一幀的位置。

三、多線程調試

多線程同時運行時,誰先執行,誰後執行,完全是看CPU心情的,無法控制先後,運行時可能沒什麼問題,但是調試時就比較麻煩了,最明顯的就是斷點亂跳,一會兒停這個線程,一會兒停在另一個線程,比如下圖:

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

如果想讓線程在調試時,想按自己的願意來,讓它停在哪個線程就停在哪個線程,可以在圖中3個斷點的小紅點上右擊,

即:Suspend掛起的條件是按每個線程來,而非All。把這3個斷點都這麼設置後,再來一發試試

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

斷點如願停在了第2句詩。

四、遠程調試

這也是一個裝B的利器,本機不用啟動項目,只要有原始碼,可以在本機直接遠程調試伺服器上的代碼,打開姿勢如下:

4.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}

起作用的就是

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

注意:遠程調試從技術上講,就是在本機與遠程建立scoket通訊,所以埠不要衝突,而且本機要允許訪問遠程埠,另外這一段參數,放要在-jar 或 ${main_class}的前面

4.2 idea中設置遠程調試

然後就可以調試了

前提是本機有項目的原始碼 ,在需要的地方打個斷點,然後訪問一個遠程的url試試,斷點就會停下來。

五、臨時執行表達式/修改變量的運行值

調試時,可以臨時執行一些表達式,參考下圖:點擊這二個圖標中的任何1個都可以

點擊+號後,就可以在新出現的輸入框裡輸入表達式,比如i+5

然後回車,馬上就能看到結果

當然,如果調試時,想動態修改變量的值,也很容易,在變量上右擊,然後選擇Set Value,剩下的事,地球人都知道。

善用上述調試技巧,相當大家擼起代碼來會更有感覺,祝大家使用愉快!作者:光年
https://www.cnblogs.com/jun1019/p/9741224.html

重磅!Python交流已成立

為了給小夥伴們提供一個互相交流的技術平臺,特地開通了Python交流群。群裡有不少技術大神,不時會分享一些技術要點,更有一些資源收藏愛好者不時分享一些優質的學習資料。(免費,不賣課!)

需要進群的朋友,可長按掃描下方二維碼。


▲長按掃碼


相關焦點

  • IDEA 調試技巧,比 Eclipse 強太多了!
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫一、條件斷點循環中經常用到這個技巧,比如:遍歷1個大List的過程中,想讓斷點停在某個特定值。
  • 這 5 條 IntelliJ IDEA 調試技巧太強了!
    二、回到"上一步"該技巧最適合特別複雜的方法套方法的場景,好不容易跑起來,一不小心手一抖,斷點過去了,想回過頭看看剛才的變量值,如果不知道該技巧三、多線程調試多線程同時運行時,誰先執行,誰後執行,完全是看CPU心情的,無法控制先後,運行時可能沒什麼問題,但是調試時就比較麻煩了,最明顯的就是斷點亂跳,一會兒停這個線程,一會兒停在另一個線程,比如下圖:
  • IntelliJ IDEA 2020.1 穩定版發布
    下載地址 https://www.jetbrains.com/idea/download,也可以使用 Toolbox App 進行更新。▲ 支持 Records有關該功能的詳細介紹請點此查看。以上提到的新功能在社區版中均可使用,詳細更新內容查看 https://www.jetbrains.com/idea/whatsnew/
  • IntelliJ IDEA 11.0.2 發布,性能可用性顯著提升
    修復了諸多可用性和異常方面的問題,主要包括: 性能:許可輸入對話框中的「Discover」按鈕執行EDT中的許可伺服器連接 可用性:「Optimize Imports」自動移除只用於元素值的XML命名空間聲明 可用性:「關聯文件類型」功能應可以自動檢測文件類型 可用性:在Flex調試器中,允許從Variables視圖中隱藏靜態欄位 可用性:IDEA更新補丁包不應該升級idea
  • Idea調試技巧
    看不見的錯誤雖然很不被標紅,但運行後會被報exception,這時候會用到調試的方法。調試能夠解決許多問題,不僅僅是exception的問題,還可以檢測運行過程中參數的值3 解決方案下面所示代碼是本次圍繞的所有代碼圖1第一步 設置斷點在想要設置斷點的代碼行
  • IntelliJ IDEA VS Eclipse,哪個更好?
    它們之間有太多的不同而很難決定什麼才是最重要的。因此,人們都表示兩個IDE在功能上都差不多,選擇某一個則是個人喜好問題了。我認為這不僅僅是個人喜好的問題,有客觀的原因能表明:Intellij IDEA 肯定比 Eclipse 更好。我不會去大量比較兩者細微不同,例如插件與快捷鍵之類的。因為有一系列的blog是關於這些的。
  • 為何IntelliJ IDEA 比 Eclipse 更好
    它們之間有太多的不同而很難決定什麼才是最重要的。因此,人們都表示兩個IDE在功能性上都差不多,選擇某一個則是個人喜好問題了。我認為這不僅僅是個人喜好的問題,有客觀的原因能表明:Intellij IDEA 肯定比Eclipse更好.我不會去大量比較兩者細微不同,例如插件與快捷鍵之類的。
  • IntelliJ IDEA 2020 Mac 2020.3.1無限試用版(Java開發工具)
    您還可以享受JavaScript,HTML,CSS和其他語言和技術的簡單編輯器,如LESS,Sass,TypeScript,Node.js,CoffeeScript,PHP,Python/Django和RubyonRails體驗:mac.orsoon.com/Mac/163677.htmlintellij idea mac 破解版破解教程intellij idea
  • 寫Java,eclipse還是IDEA?教你怎麼選編譯器
    打開APP 寫Java,eclipse還是IDEA?教你怎麼選編譯器 酷愛小島 發表於 2020-07-01 15:36:51 寫Java,「eclipse」還是「IDEA」?
  • IntelliJ IDEA 超實用使用技巧分享
    作者:Richard_Yijuejin.im/post/5d47f4e851882534d152a206前言工欲善其事必先利其器最近受部門的邀請,給入職新人統一培訓IDEA,發現有很多新人雖然日常開發使用的是IDEA,但是還是很多好用的技巧沒有用到,只是用到一些基本的功能,蠻浪費IDEA這個優秀的IDE。
  • IntelliJ IDEA 2019.3 Beta 2 已經發布!
    公告:https://blog.jetbrains.com/idea/2019/11/intellij-idea-2019-3-beta-2-is-out
  • Java 開發工具 IntelliJ IDEA 2020.1 穩定版發布
    下載地址 https://www.jetbrains.com/idea/download,也可以使用 Toolbox App 進行更新。▲ 支持 Records有關該功能的詳細介紹請點此查看。以上提到的新功能在社區版中均可使用,詳細更新內容查看 https://www.jetbrains.com/idea/whatsnew/
  • 思維導圖,Eclipse 上提高效率的技巧
    仔細在網上搜了一下,還是有辦法解決哈,裝個插件就可以了聽說,我還沒試過,最近忙又懶。。。 連結我發出來,有興趣的可以試試哈。3、Ctrl+Shirt+R快捷鍵過慮class文件經常使用Ctrl+Shift+R快捷鍵快速打開某個文件,但是裡面class或一些緩存文件也在裡面,選擇起來麻煩
  • IntelliJ IDEA 新插件,可以檢查注釋、文檔與 commit 語法
    2019.2.4 版本開始,Grazie 可用於 IntelliJ IDEA,詳情查看:https://blog.jetbrains.com/idea/2019/11/meet-grazie-the-ultimate-spelling-grammar-and-style-checker-for-intellij-idea
  • IntelliJ IDEA 2020.1 EAP4 發布,重命名/更改籤名新功能
    詳情查看更新說明:https://blog.jetbrains.com/idea/2020/02/intellij-idea-2020-1-eap4
  • IntelliJ IDEA 超實用技巧分享,不能再全了!
    如果你沒有激活碼,關注公眾號Java技術棧回復idea可以閱讀正規獲取激活碼的幾種獲取方式。同時,在這次分享之後,本人自己也學習到了一些新的使用技巧,所以借著這次機會,一起分享出來。希望可以幫到一些人。
  • 讓Idea比eclipse更加好用
    Idea的項目目錄我們創建的項目,在d:\ideawork目錄的demo下目錄是存儲編譯後的.class文件目錄是存儲我們編寫的.java源文件Idea默認的常用快捷快捷鍵這個功能非常有用,你可以根據這個,設置你要的快捷代碼,比如輸入if輸出if的完整語句等,如下:比如輸入if輸出if的完整語句等,如idea默認輸入if不會自動補全,缺少{},而你可以通過自定義模板配置一個叫if的模板, 模板的文字內容寫if語句的完整格式,$END$表示光標最後停留的位置,如下:自動導包
  • IDEA神器居然還有這些小技巧,你知道幾種方式呢?
    ctrl + alt + s在當前光標在的這樣一行的下一行添加一行, 並自動添加括號, 標點符號等ctrl + shfit +enter彈出, 當前類中的方法集合在做javaweb的時候, 一個controller 方法太多
  • IntelliJ IDEA 2020.3 EAP6 發布:重新設計 Endpoints、URL 嵌入提示
    更新詳情可查看:https://blog.jetbrains.com/idea/2020/10/intellij-idea-2020-3-eap6/
  • IntelliJ IDEA使用技巧
    作者: JohnTsai    出處: https://www.cnblogs.com/JohnTsai/p/4114412.html這篇文章主要學習了idea的使用技巧。——百度百科下載安裝官網:https://www.jetbrains.com/     下載網址:https://www.jetbrains.com/idea/download/有兩個版本:Ultimate版和Community