idea 这么还原debug_看源码,我为什么推荐IDEA ?
1.條件斷點
看源碼的時候,經常遇到這個情況,源碼中有個for循環,關鍵是這個list的size有時候長達數百個.但是我們只想debug一種情況.肥朝就曾經見過,在for循環中打了斷點,一直按跳過,按了數十下之后.才找到自己想debug的值.這樣效率不高
比如下文這個
1@Test2public void testList() throws Exception {3 List list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);4 for (Integer integer : list) {5 System.out.println(integer);6 }7}如果你想debug數字10這種情況,如果你不知道條件斷點,那么你可能要一直點9次跳過.我們來看一下條件斷點的使用
這樣,就只有滿足條件的時候才會進入斷點了,告別無效的小手一抖!
2.強制返回值
比如SpringBoot中這個打印Banner的.我們想調試多種情況.就可以利用這個Force Return,這樣方便我們調試源碼中的多種分支流程
3.模擬異常
在做業務開發中,我們有時需要模擬某個方法拋出異常,看看自己的代碼是不是像肥朝一樣可靠得一逼.但是你每次去寫死一個異常,然后再刪掉,這種低效的方式有違極客精神.那么我們如果讓一個方法拋出異常呢?
不過要注意的一點是,這個功能印象中是IDEA 2018年以后的版本才有的功能.
4.Evaluate Expression
比如我們看源碼時遇到這個一個場景,這里有一個byte[],但是我們就想看一下這個的值到底是啥.
那么我們可以這么操作一波
這個功能的使用場景非常的廣,通過這個功能,可以在看源碼時,給某個變量賦我們要想的值,從而改變代碼的分支走向等等.總之,這個是肥朝看源碼中,使用頻率最高的功能之一.更多場景,等待老司機們自己調教!
5.toString的坑(重點)
相信看過Dubbo源碼的朋友都會遇到過這個一個坑.也就是你把斷點打在下面圖示的第一個箭頭的時候,是無法進入init()方法的.但是你把斷點打在第二個箭頭也就是init()方法的時候,是能進入的.曾經也有不少人問過這個問題.
當然除了這個坑之外,也有類似的坑,如下
所以這個idea的默認設置.建議在一定條件下還是關閉。
總結
以上是生活随笔為你收集整理的idea 这么还原debug_看源码,我为什么推荐IDEA ?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cass3d基础版_v1.1_仪表不凡说
- 下一篇: eltree ref什么时候有_成功el