意向不到的Dubug妙招

1、直接dubug到想要到達的位置,直接點擊旁邊的數字即可。

image.png

2、debug後不想重新啟動,想重新進入再執行一次debug,可以使用drop frame來刪除當前棧,跳到之前的棧再一次進入這個棧。

  • 注意這個是以棧為單位,即一個個方法來來回滾的,因此只能跳到上一個方法。

image.png

3、條件斷點,右擊兩次斷點紅點,輸入斷點執行的等式就可以在滿足條件的時候才進入該斷點。

image.png

4、固定表達式追蹤,可以點擊加號添加想要跟蹤的固定表達是,這樣我們就不需要每次都打開對象去check對象內想知道的值。

image.png

image.png

5、斷點開關,可以選擇暫時不進入的斷點,方便調試。

image.png

6、動態修改形參的值,通過evaluate expression來動態臨時修改形參的值來進行變量修改,滿足我們特定變量的調試。

  • 注意在形參上修改才有效。

image.png

image.png

image.png

7、多線程調試,選擇suspend為Thread就可以讓當前線程斷點到改位置。

image.png
image.png

8、源碼debug調試,右擊兩次源碼的斷點進行源碼位置代碼的輸出,輔助調試。

  • 注意雙親委派的模式下,優先加載JDK包下的源碼,再加載本工程代碼,再加載第三方如框架包。
  • 因此使用在本工程下創建第三方jar包路徑下的代碼類可以覆蓋第三方類的加載。
  • 但是對於JDK源碼則做不到,因為JDK源碼是第一順位加載的,只能在debug的時候加上這種調試輸出。

image.png

參考

極海大佬的dubug分享

Tags: