Как использовать условную точку останова в Eclipse?

117

Я хочу знать, как разместить условную точку останова в Eclipse. У меня есть такой код:

public static void doForAllTabs(String[] tablist){
    for(int i = 0; i<tablist.length;i++){
-->        doIt(tablist[i]);
    }
}

Теперь я хочу поставить точку останова на строке со стрелкой, но хочу, чтобы она срабатывала, только если:

tablist[i].equalsIgnoreCase("LEADDELEGATES");
MozenRath
источник

Ответы:

179

Поставьте точку останова. Щелкните правой кнопкой мыши изображение точки останова на поле и выберите Свойства точки останова :

введите описание изображения здесь

Настройте состояние по своему усмотрению:

введите описание изображения здесь

ZenMaster
источник
9
Последняя версия Eclipse также включает эти параметры непосредственно в представление точек останова.
Майкл Брюэр-Дэвис
1
Спасибо друг! сэкономил кучу моего времени! :)
MozenRath
8
Вот Это Да! Я использую: if(condition){System.out.println("debug");}и ломаю инструкцию print в течение многих лет.
Cruncher
5
Не забудьте опустить ;в конце - у меня возникла ошибка при включении.
modulitos
Большое спасибо! Это было очень полезно.
hfontanez
11

Сделайте нормальную точку останова на doIt(tablist[i]);строке

Щелкните правой кнопкой мыши -> Свойства

Отметьте «Условно»

Войти tablist[i].equalsIgnoreCase("LEADDELEGATES")

Гаррет Холл
источник
Разве вам не нужна точка с запятой в конце выражения? Я могу заставить работать условные точки останова, только если добавлю точку с запятой (и даже тогда не очень часто).
Cajunluke
3
@CajunLuke То же самое. Я просто попробовал с final T[](не универсальным типом) и получил Conditional breakpoint has compilation error(s). Забавно, но мое состояние bonds==nullи Причина в диалоговом окне ошибки invalid AssignmentOperator. вздох Иногда Eclipse ведет себя больше как 12-летний человек, чем как программа 12-летней давности.
KomodoDave
3

Из Eclipsepedia о том, как установить условную точку останова:

Сначала установите точку останова в заданном месте. Затем используйте контекстное меню на точке останова на левом поле редактора или в представлении «Точки останова» в перспективе «Отладка» и выберите свойства точки останова. В диалоговом окне установите флажок Включить условие и введите произвольное условие Java, например list.size()==0. Теперь каждый раз, когда достигается точка останова, выражение оценивается в контексте выполнения точки останова, и точка останова либо игнорируется, либо соблюдается, в зависимости от результата выражения.

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


источник
Ваша ссылка не ?закодирована. Попробуй это .
KomodoDave
Спасибо, оцените это
2

1. Создайте класс

public class Test {

 public static void main(String[] args) {
    // TODO Auto-generated method stub
     String s[] = {"app","amm","abb","akk","all"};
     doForAllTabs(s);

 }
 public static void doForAllTabs(String[] tablist){
     for(int i = 0; i<tablist.length;i++){
         System.out.println(tablist[i]);
    }
  }
}

2. Щелкните правой кнопкой мыши в левой части System.out.println (tablist [i]); в Eclipse -> выберите Toggle Breakpoint

3. Щелкните правой кнопкой мыши точку переключения -> выберите Свойства точки останова.

4. Проверьте Условный Check Box -> запись tablist [я] .equalsIgnoreCase ( "АММ") в текстовом поле -> Нажмите на кнопку OK

5. Щелкните правой кнопкой мыши класс -> Отладка как -> Приложение Java.

Прашант Саху
источник