IDEA調試技巧,簡直爽到爆

2020-09-24 一個程式設計師的奮鬥史

無論你是從事Android APP開發 or Java後臺伺服器開發,我想大家應該都知道IDEA的大名。如果你還一直躺在Eclipse的溫室中,那麼也強烈建議的來試試IDEA,很香的!

調試,是每一個開發者必備的技能。常言道,眼過千遍不如手過一遍,手過一遍,不如Debug一遍!軟體調試技能是很好的區分程式設計師水平高低的一桿秤。下面為大家介紹幾個用起來爽到爆的調試技巧。

0x01 條件斷點

調試過程中,循環語句經常用到的一個技巧,比如:遍歷一個比較大的List的過程,想讓斷點停在某個特定值。如果你還停留在循環中間設置斷點,然後不停地下一步,下一步......那麼,請繼續看下去!

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

0x02 回到 「上一步」

該技巧最適合特別複雜的方法套方法的場景,好不容易程序跑起來,一不小心手一抖,斷點過去了,想回過頭看看剛才的變量值,如果不知道該技巧,只能重新運行程序再跑一遍,你和他人的工作效率就是這樣一步一步拉開的。

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

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

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

0x03 多線程調試

多線程開發,基本是每個開發者工作過程中不可避過的一道坎,也是每次求職必問的高頻考點。多線程程序同時運行時,誰先執行,誰後執行,完全是看CPU心情的,無法控制先後,運行時可能沒什麼問題,但是調試時就比較麻煩了,最明顯的就是斷點亂跳,一會兒停這個線程,一會兒停在另一個線程,比如下圖:

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

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

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

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

0x04 臨時執行表達式/修改變量運行值

這也是一項很常用的功能,調試時,可以臨時執行一些表達式,參考下圖:點擊這二個圖標中的任何1個都可以。

點擊+號後,就可以在新出現的輸入框裡輸入表達式,比如i+5,然後回車,即可看到效果,具體可參照下面兩張圖。

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

當然,IDEA是支持遠程調試的,限於篇幅,這裡就不在進行介紹了,感興趣的童鞋可以直接參考網上資料。

相關焦點

  • IDEA 調試技巧,比 Eclipse 強太多了!
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫一、條件斷點循環中經常用到這個技巧,比如:遍歷1個大List的過程中,想讓斷點停在某個特定值。
  • IDEA 調試技巧,比 Eclipse 強太多了
    ,斷點過去了,想回過頭看看剛才的變量值,如果不知道該技巧,只能再跑一遍。回到了method1剛開始調用的時候,變量i變成了99,沒毛病吧,老鐵們,是不是很6 :)註:好奇心是人類進步的階梯,如果想知道為啥這個功能叫Drop Frame,而不是類似Back To Previous 之類的,可以去翻翻JVM的書,JVM內部以棧幀為單位保存線程的運行狀態,drop frame即扔掉當前運行的棧幀,這樣當前「指針」的位置,就自然到了上一幀的位置
  • IDEA的這幾個調試的騷操作,用了都說爽
    一、條件斷點循環中經常用到這個技巧,比如:遍歷1個大List的過程中,想讓斷點停在某個特定值。,好不容易跑起來,一不小心手一抖,斷點過去了,想回過頭看看剛才的變量值,如果不知道該技巧,只能再跑一遍。回到了method1剛開始調用的時候,變量i變成了99,沒毛病吧,老鐵們,是不是很6 :)註:好奇心是人類進步的階梯,如果想知道為啥這個功能叫Drop Frame,而不是類似Back To Previous 之類的,可以去翻翻JVM的書,JVM內部以棧幀為單位保存線程的運行狀態,drop frame即扔掉當前運行的棧幀,這樣當前「指針」的位置,就自然到了上一幀的位置
  • 這 幾個 IDEA,調試的騷操作,用了都說爽!
    一、條件斷點循環中經常用到這個技巧,比如:遍歷1個大List的過程中,想讓斷點停在某個特定值。二、回到"上一步" 該技巧最適合特別複雜的方法套方法的場景,好不容易跑起來,一不小心手一抖,斷點過去了,想回過頭看看剛才的變量值,如果不知道該技巧,只能再跑一遍。
  • IntelliJ IDEA 2020的調試技巧,真的比eclipse強太多了
    一、條件斷點循環中經常用到這個技巧二、回到&34;該技巧最適合特別複雜的方法套方法的場景,好不容易跑起來,一不小心手一抖,斷點過去了,想回過頭看看剛才的變量值,如果不知道該技巧,只能再跑一遍。註:好奇心是人類進步的階梯,如果想知道為啥這個功能叫Drop Frame,而不是類似Back To Previous 之類的,可以去翻翻JVM的書,JVM內部以棧幀為單位保存線程的運行狀態,drop frame即扔掉當前運行的棧幀,這樣當前「指針」的位置,就自然到了上一幀的位置
  • idea遠程調試
    【前言】 在工作中不免會遇到由於環境引起的問題,在本地可以但是發布到伺服器上有問題,此時可以藉助於遠程調試幫我們快速定位問題的所在。【遠程調試】 一、基本環境說明 1.本博客的demo代碼地址 https://github.com/dangnianchuntian/springboot
  • IDEA遠程調試
    背景大部分測試環環境和本地環境有區別,在本地上也很難搭建起一套完整的服務,所以導致了在本地可以發布到伺服器上卻出現各種問題,這時候我們就可以藉助遠程調試來幫助我們快速的定位問題的所在。基本環境遠程調試需要在伺服器上部署與本地一致的代碼。
  • Idea遠程調試
    idea遠程調試方式Idea遠程調試 當把一個本地項目部署到遠程伺服器後有可能出現意想不到錯誤,這個時候通過遠程調試能夠更清楚的找到bug所在位置。本篇主要講解如何使用Idea開發工具 進行調試1.遠程調試伺服器上面的SpringBoot 項目2.遠程調試伺服器上運行在tomcat中的項目,實際開發部署中有時候還是很有用處的,方便你定位錯誤 快速找出錯誤。
  • 熬夜也要看完的電視劇,簡直爽到爆了!
    熬夜也要看完的電視劇,簡直爽到爆了! 大家好,我是葉子!你有沒有過一種衝動——熬夜看電視劇呢?那種心情,超級棒,安靜的夜晚,無人打擾,而且氛圍還很給力,一個只屬於你自己的電視劇,今天,葉子盤點了幾部自己曾經熬夜追過的電視劇,推薦給大家看看!
  • idea debug調試————簡單常用,適合初學者
    背景: 在現在的開發中,如果不會debug,那麼將會給我們的開發帶來很大的困擾,如果僅僅是依靠日誌信息去查問題,將會大大增加我們解決問題的難度,下面說一下idea工具版本: idea2017.3.2如果只有一個斷點,直接點擊一次恢復程序,恢復到正常的程序。
  • 《Last idea》雷火盾攻略 戰鬥技巧分享
    導 讀 今天介紹的文章標題是——Last idea雷火盾戰鬥技巧分享。
  • 《Last idea》黑龍特點分析 通關技巧心得
    在Last idea手遊中黑龍副本一直是不少小夥伴們所關心的,那麼接下來就來給大家介紹一下具體攻略吧! Last idea黑龍通關心得 1. 必須... 在Last idea手遊中黑龍究竟該怎麼過呢?
  • IntelliJ IDEA技巧,複製字符串連接文本到剪切板
    然後再刪除雙引號和加號,得到需要的內容select sex,count(*) from student group by sex;這樣做比較麻煩,使用 idea
  • 愛愛姿勢大全,簡直嗨到爆爽
    3、愛愛最舒服的姿勢三:激情69式69式的性愛是激情性愛的代名詞,其美妙的口愛感受簡直讓人流連忘返。但是,口交無疑會引起一些衛生方面的問題,因此口交之前的清潔是必不可少的一項工作,並且最好能將兩人的私密森林夷為平地,然後再充分發揮舌尖的潛力,長此以往,你的面部以及下頜肌肉都會得到鍛鍊,不必擔心它們鬆弛。
  • idea程式設計師必備插件
    idea插件Java程式設計師必備的Intellij插件1、ignore生成各種ignore文件,一鍵創建git ignore文件的模板實用指數:★★★★☆2、activate-power-mode這種粒子+抖動效果是用activate-power-mode插件實現的,簡直就是裝逼神器。
  • 安利幾個讓你爽到爆的IDEA必備插件
    安利10個讓你爽到爆的IDEA必備插件!》收到了很多小夥伴的好評,時隔大半個月左右,第二彈IDEA插件總算來啦!下面推薦的插件都是我覺得比較實用的,不過你可以根據自己的需要,適當進行選擇。另外 IDEA 自帶的很多插件如果沒有用到的話都可以關掉,這樣可以提高IDEA的運行速度。
  • gdb實用的調試技巧:啟動方式、堆棧信息、單步調試
    對於很多開發者來說,開發過程中難免會遇到各種各樣的bug, 所以,每個開發者應該考慮如何快速高效定位問題原因,而gdb是linux上很實用的調試工具,熟練掌握其調試技巧,將有助於提高解決問題的效率,也是開發者應該掌握的基本技能。
  • gdb實用的調試技巧:啟動方式、堆棧信息、單步調試
    對於很多開發者來說,開發過程中難免會遇到各種各樣的bug, 所以,每個開發者應該考慮的如何快速高效定位問題原因,而gdb是linux上很實用的調試工具,熟練掌握其調試技巧,將有助於提高解決問題的效率,也是開發者應該掌握的基本技能。
  • IntelliJ IDEA開發工具使用
    優點:(1) 智能化代碼助手、重構、J2EE支持、各類版本工具(git、svn、github)(2) 最突出的調試功能,可以對java、JavaScript、jQuery、Ajax等技術進行調試(3) IDEA是JetBrans公司的產品,該公司還有其他的開發工具產品缺點:太強大的自動提示功能讓使用者漸漸產生依賴感下載地址
  • 實用Javascript 調試技巧分享
    下面我就分享一些實用且聰明的調試技巧,希望能讓大家調試自己代碼的時候更加從容自信。1. 不要使用alert首先,alert只能列印出字符串,如果列印的對象不是String,則會調用toString()方法將該對象轉成字符串(比如轉成[object Object]這種),所以除非你列印String類型的對象,其他什麼信息都獲取不到。