Есть ли возможность разбить каждую ссылку на объект в отладчике eclipse?

Предположим, что у меня есть класс

public class MyClass {

    private Set<String> set = new HashSet<String>();

    //and many methods here

}

есть ли возможность сделать отладчик eclipse stop в каждой строке, где используется элемент-член?

Ответ 1

Я не использовал Eclipse какое-то время, но, насколько я помню, это возможно в выпуске Callisto по крайней мере. Если вы установите точку останова в строке, содержащей объявление, а затем перейдите в расширенные свойства для этой точки останова, я считаю, что вы можете установить параметры для изменения и доступа к этой переменной.

Изменить: я только что проверил Eclipse Europa. Он работает очень широко, как я думал; точка останова называется точкой наблюдения, когда вы устанавливаете ее на переменную; и на странице "Свойства точки останова" (доступный щелчком правой кнопкой мыши по bauble точки останова на полях и, возможно, другими способами), вы можете определить, должен ли отладчик останавливаться на "Полевом доступе" и "Модификации поля". В вашем случае вы хотите, чтобы первый был выбран.

Ответ 2

Да. Вы можете поставить точку останова в выражении

private String propString;

Точка останова получает еще один символ и показывает подсказку "Watchpoint [Acess and modify]"

С помощью Shift + Ctrl + я вы можете посмотреть значение выбранного имени переменной, когда отладчик находится в режиме шага.

Вы также можете изменять значения переменных во время выполнения, когда отладчик находится в режиме шага.

Отладчик eclipse - очень полезный и мощный инструмент.

Ответ 3

Это с самого начала было частью отладчика eclipse. Вам просто нужно установить точку останова в строке, где объявлена ​​переменная. Для большего контроля вы можете щелкнуть правой кнопкой мыши точку останова и выбрать свойства точки останова, где вы можете установить, хотите ли вы останавливаться только на Access или Modification.

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