точки останова данных в Java / Eclipse - PullRequest
40 голосов
/ 03 ноября 2010

при разработке C ++ с VS у вас есть эта удивительная особенность точек останова данных, которые запускаются при изменении данных по определенному адресу в памяти.

есть ли подобная функция при разработке Java в Eclipse?

спасибо!

edit: о функции "приостановить при изменении значения": у меня сложилось впечатление, что выполнение все равно должно достичь строки, где находится точка останова.дело в том, что я хочу, чтобы он срабатывал в любом месте, как только значение меняется.

Ответы [ 6 ]

59 голосов
/ 03 ноября 2010

Вы можете установить точку наблюдения на поле: наведите курсор на линию, где поле объявляется, и выберите меню Run -> Toggle Watchpoint
или просто установите точку останова, дважды щелкнув на левом поле в этой строке.

Вы можете изменить свойства точки наблюдения, например suspend on field access или suspend on field modification, после ее добавления. Просто щелкните правой кнопкой мыши на точке наблюдения на левом поле и выберите Breakpoint Properties...

Поиск справки для точки наблюдения, чтобы получить больше информации:

Точка наблюдения - это специальная точка останова, которая останавливает выполнение приложения всякий раз, когда изменяется значение данного выражения, без указания места его возникновения. ...

6 голосов
/ 04 февраля 2011

Использование представления «Переменная»:

  • щелкните правой кнопкой мыши поле и выберите «Переключить точку наблюдения», а затем
  • снова щелкните правой кнопкой мыши тот же экземпляр и выберите «Точки останова экземпляра ...»"который позволяет вам ограничить определенную точку останова для данного экземпляра.

Обратите внимание, что производительность, вероятно, не так хороша, как с аппаратной точкой останова памяти (как, например, в VC ++).

3 голосов
/ 03 ноября 2010

Щелкните правой кнопкой мыши точку останова и выберите Breakpoint properties.

. На открывшемся экране выберите: Conditional -> Suspend when value changes

3 голосов
/ 03 ноября 2010

В свойствах точки останова вы можете сделать ее условной и установить переключатель «Приостановить при изменении значения».

1 голос
/ 03 ноября 2010

Насколько я знаю, в Eclipse нет такой общей функции. Однако вы можете задать некоторые условия существующей точке останова:

Добавьте точку останова где-нибудь в вашем коде. Затем в представлении «Точка останова» щелкните его правой кнопкой мыши и выберите «Свойства точки останова». На панели можно добавить условие, которое необходимо проверить, чтобы приложение остановилось на этой точке останова (например, if (foo > 0)).

Это не совсем то, что вы хотите, но я не думаю, что Eclipse предоставляет такую ​​функцию.

1 голос
/ 03 ноября 2010

Самым близким будет редактирование свойств точки останова.Вы можете добавить условия для проверки различных значений.Другим способом может быть добавление точки останова в метод установки.

Вы можете установить свойства точки останова, щелкнув правой кнопкой мыши по уже установленной точке останова в представлении точки останова.

...