断点类型介绍

详细断点

  • shift + 鼠标左键
  • Suspend 挂起,设置 suspend 后,断点才会起作用,可以有很多设置

image.png

方法断点

  • 适用于查看接口方法的实现类

image.png

异常断点

  • 让程序在抛出指定的异常时,打断点,方便观察异常的原因
  • 程序会停在即将抛出异常的那一行

image.png

字段断点

  • 对于类中字段的操作都会打断点
  • watch 中设置对读、写操作打断点

image.png

调试技巧

观察变量

  • New Watch, 添加一个观察变量

image.png

执行表达式

  • 执行表达式,查看结果

image.png

多线程调试

  • suspend 选择 Thread

image.png

断点回退

  • Drop Frame, 原理是返回上一个函数栈,即退回到调用函数之前
  • 若此时没有进入任何函数,则无法回退,比如在main函数中断的代码

image.png

条件断点

  • 指定条件才触发断点

image.png

修改与调试

修改变量的值

  • 使用setValue设置调试值

image.png

加载变化

  • 如果调试时修改了代码,希望加载变化,而不是重新debug
  • Run -> Debugging Actions -> Reload Change Classes

image.png

避免操作资源

  • 有时停止debug后,不希望继续操作资源

image.png