Jak korzystać z warunkowego punktu przerwania w Eclipse?

117

Chcę wiedzieć, jak umieścić warunkowy punkt przerwania w Eclipse. Mam taki kod:

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

Teraz chcę umieścić punkt przerwania na linii ze strzałką, ale chcę, aby był uruchamiany tylko wtedy, gdy:

tablist[i].equalsIgnoreCase("LEADDELEGATES");
MozenRath
źródło

Odpowiedzi:

179

Umieść swój punkt przerwania. Kliknij prawym przyciskiem myszy obraz punktu przerwania na marginesie i wybierz Właściwości punktu przerwania :

wprowadź opis obrazu tutaj

Skonfiguruj stan według własnego uznania:

wprowadź opis obrazu tutaj

ZenMaster
źródło
9
Najnowsza wersja Eclipse zawiera te opcje również bezpośrednio w widoku punktów przerwania.
Michael Brewer-Davis,
1
Dzięki stary! zaoszczędziłem mnóstwo czasu! :)
MozenRath,
8
Łał! Używam: if(condition){System.out.println("debug");}i łamię się na wyciągu drukowanym od lat.
Cruncher
5
Nie zapomnij o POMINIĘCIU ;na końcu - wyskoczył mi błąd, kiedy go umieściłem.
modulitos
Wielkie dzięki! To było bardzo pomocne.
hfontanez
11

Utwórz normalny punkt przerwania na doIt(tablist[i]);linii

Kliknij prawym przyciskiem myszy -> Właściwości

Zaznacz „Warunkowo”

Wchodzić tablist[i].equalsIgnoreCase("LEADDELEGATES")

Garrett Hall
źródło
Nie potrzebujesz średnika na końcu wyrażenia? Warunkowe punkty przerwania mogą działać tylko wtedy, gdy dodam średnik (i to niezbyt często nawet wtedy).
Cajunluke
3
@CajunLuke To samo tutaj. Właśnie wypróbowałem to z final T[](typem nieogólnym) i otrzymałem Conditional breakpoint has compilation error(s). Co zabawne, mój stan jest, bonds==nulla przyczyna w oknie dialogowym błędu to invalid AssignmentOperator. westchnienie Czasami Eclipse zachowuje się bardziej jak 12-letni człowiek niż 12-letni program.
KomodoDave
3

Od Eclipsepedia o tym, jak ustawić warunkowy punkt przerwania:

Najpierw ustaw punkt przerwania w danej lokalizacji. Następnie użyj menu kontekstowego w punkcie przerwania na lewym marginesie edytora lub w widoku Punkty przerwania w perspektywie debugowania i wybierz właściwości punktu przerwania. W oknie dialogowym zaznacz opcję Włącz warunek i wprowadź dowolny warunek Java, taki jak list.size()==0. Teraz za każdym razem, gdy zostanie osiągnięty punkt przerwania, wyrażenie jest oceniane w kontekście wykonania punktu przerwania, a punkt przerwania jest ignorowany lub honorowany, w zależności od wyniku wyrażenia.

Warunki można również wyrazić w postaci innych atrybutów punktów przerwania, takich jak liczba trafień.


źródło
Twój link nie jest ?zakodowany. Spróbuj tego .
KomodoDave
Dzięki, doceniam to
2

1. Utwórz klasę

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. Kliknij prawym przyciskiem myszy lewą stronę pliku System.out.println (tablist [i]); w Eclipse -> wybierz Toggle Breakpoint

3. Kliknij prawym przyciskiem myszy punkt przełączania -> wybierz Właściwości punktu przerwania

4. Zaznacz warunkowe pole wyboru -> wpisz tabelę [i] .equalsIgnoreCase ("amm") w polu tekstowym -> kliknij OK

5. Kliknij prawym przyciskiem myszy klasę -> Debuguj jako -> Aplikacja Java

Prashant Sahoo
źródło