意向不到的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分享

张贴在2