Есть ли способ отладчика Eclipse, чтобы получать уведомления, когда состояние объекта Java изменяется? - PullRequest
22 голосов
/ 10 ноября 2009

Я отлаживаю некоторый унаследованный код, где у нас есть кэшированный объект, который, кажется, изменен извне.

Если я знаю идентификатор объекта для него (во время отладки), есть ли какой-нибудь способ «наблюдать» за ним, чтобы, если какой-либо другой код в том же потоке или другом потоке попытается изменить его состояние, он вызовет мою отладку?

Я не могу использовать его только для наблюдения за выражениями, поскольку в других местах могут быть ссылки на этот объект, а также существует много экземпляров одного и того же класса.

Ответы [ 2 ]

17 голосов
/ 10 ноября 2009

Установите точку останова в коде, в котором вы хотите остановиться при изменении значения.

  • Начать с точки останова.
  • Выберите точку останова
  • щелкните правой кнопкой мыши и перейдите к «свойствам точек останова»
  • Установите флажок «Включить условие»
  • в текстовом поле введите имя переменной для просмотра
  • установите переключатель «значение изменений состояния»
14 голосов
/ 10 ноября 2009

Если он объявлен где-то как переменная класса или экземпляра (должно быть, как еще вы могли бы кэшировать это), то вы также можете просто установить точку останова на конкретной строке. Он будет называться watchpoint и будет по умолчанию запускаться при access и модификациях (настраивается через свойства точки останова).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...