Есть ли способ в отладчике Eclipse быть уведомленным при изменении состояния объекта Java?
Я отлаживаю некоторый унаследованный код, где у нас есть кешированный объект, который внешне внешне изменен.
Если я знаю идентификатор объекта для него (при отладке), есть ли способ "смотреть" его так, чтобы, если какой-либо другой код в том же потоке или другом потоке пытается изменить его состояние, он вызовет мою отладку?
Я не могу использовать только выражение для него, потому что там могут быть ссылки на этот объект в другом месте, и поскольку существует много экземпляров одного и того же класса.
Ответы
Ответ 1
Установите точку останова в коде, который вы хотите остановить, когда значение изменится.
- Начните с просмотра точки останова.
- Выберите точку останова
- щелкните правой кнопкой мыши и перейдите к "свойствам точки останова"
- Установите флажок "Включить условие"
- в текстовом поле введите имя переменной, чтобы посмотреть
- выберите переключатель "значение изменения условий"
Ответ 2
Если он объявлен где-то как переменная класса или экземпляра (должно быть, как еще вы можете его кэшировать), тогда вы также можете просто установить точку останова на конкретной строке. Он будет называться watchpoint
и по умолчанию будет запущен при доступе и изменении (настраивается через свойства точки останова).