当Java对象的状态发生变化时,是否有一种方法可以通知Eclipse调试器?

Uri*_*Uri 22 java eclipse debugging

我正在调试一些遗留代码,其中我们有一个看似外部更改的缓存对象.

如果我知道它的对象标识符(在调试时),是否有某种方法可以"监视"它,以便如果同一线程或另一个线程中的某些其他代码尝试修改其状态,它将触发我的调试?

我不能只使用表达式监视它,因为在其他地方可能有对该对象的引用,并且因为有许多同一类的实例.

Kel*_*nch 17

在值更改时,在要停止的代码中设置断点.

  • 从断点视图开始.
  • 选择断点
  • 右键单击并转到"断点属性"
  • 选中"启用条件"框
  • 在文本字段中输入要监视的变量的名称
  • 选择'条件更改值'单选按钮


Bal*_*usC 14

如果它被声明为某个类或实例变量(应该是,如何缓存它),那么您也可以在特定行上设置断点.它将被调用watchpoint,默认情况下将在访问修改时触发(可通过断点属性进行配置).

  • 我不是指getter/setters.我实际上是指类/实例变量.将断点放在变量上,而不是方法上. (5认同)