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

时间:2009-11-10 17:59:54

标签: java eclipse debugging

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

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

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

2 个答案:

答案 0 :(得分:17)

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

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

答案 1 :(得分:14)

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