Eclipse 调试器中有没有办法在 Java 对象的状态更改时收到通知?

2022-09-02 01:23:07

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

如果我知道它的对象标识符(在调试时),有没有办法“监视”它,以便如果同一线程或另一个线程中的其他代码尝试修改其状态,它将触发我的调试?

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


答案 1

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

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

答案 2

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