Wie verwende ich einen bedingten Haltepunkt in Eclipse?


117

Ich möchte wissen, wie ein bedingter Haltepunkt in Eclipse platziert wird. Ich habe einen Code wie:

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

Jetzt möchte ich einen Haltepunkt auf die Linie mit dem Pfeil setzen, aber er soll nur ausgelöst werden, wenn:

tablist[i].equalsIgnoreCase("LEADDELEGATES");

Antworten:


179

Setzen Sie Ihren Haltepunkt. Klicken Sie mit der rechten Maustaste auf das Haltepunktbild am Rand und wählen Sie Haltepunkteigenschaften :

Geben Sie hier die Bildbeschreibung ein

Konfigurieren Sie den Zustand nach Belieben:

Geben Sie hier die Bildbeschreibung ein


9
Die neueste Eclipse enthält diese Optionen auch direkt in der Haltepunktansicht.
Michael Brewer-Davis

1
Danke Kumpel! hat mir viel Zeit gespart! :)
MozenRath

8
Beeindruckend! Ich benutze: if(condition){System.out.println("debug");}und habe jahrelang die Print-Anweisung gebrochen.
Cruncher

5
Vergessen Sie nicht, das ;am Ende wegzulassen - ich habe einen Fehler erhalten, als ich es eingefügt habe.
Modulitos

Vielen Dank! Das war sehr hilfreich.
Hfontanez

11

Machen Sie einen normalen Haltepunkt auf der doIt(tablist[i]);Linie

Klicken Sie mit der rechten Maustaste -> Eigenschaften

Aktivieren Sie "Bedingt".

Eingeben tablist[i].equalsIgnoreCase("LEADDELEGATES")


Benötigen Sie kein Semikolon am Ende des Ausdrucks? Ich kann bedingte Haltepunkte nur dann zum Laufen bringen, wenn ich das Semikolon hinzufüge (und selbst dann nicht sehr oft).
Cajunluke

3
@CajunLuke Gleich hier. Ich habe es gerade mit einem final T[](nicht generischen Typ) versucht und bekomme Conditional breakpoint has compilation error(s). Amüsanterweise ist mein Zustand bonds==nullund der Grund im Fehlerdialog ist invalid AssignmentOperator. seufzen Manchmal verhält sich Eclipse eher wie ein 12 Jahre alter Mensch als wie eine 12 Jahre alte Software.
KomodoDave

3

Von Eclipsepedia zum Festlegen eines bedingten Haltepunkts:

Legen Sie zunächst einen Haltepunkt an einer bestimmten Stelle fest. Verwenden Sie dann das Kontextmenü für den Haltepunkt am linken Editorrand oder in der Haltepunktansicht in der Debug-Perspektive und wählen Sie die Eigenschaften des Haltepunkts aus. Aktivieren Sie im Dialogfeld die Option Bedingung aktivieren und geben Sie eine beliebige Java-Bedingung ein, z list.size()==0. Jedes Mal, wenn der Haltepunkt erreicht wird, wird der Ausdruck im Kontext der Haltepunktausführung ausgewertet, und der Haltepunkt wird je nach Ergebnis des Ausdrucks entweder ignoriert oder berücksichtigt.

Bedingungen können auch in Form anderer Haltepunktattribute ausgedrückt werden, z. B. der Trefferanzahl.


Ihr Link ist nicht ?verschlüsselt. Versuchen Sie dies .
KomodoDave

Vielen Dank, schätzen Sie es

2

1. Erstellen Sie eine Klasse

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. Klicken Sie mit der rechten Maustaste auf die linke Seite von System.out.println (Tablist [i]). in Eclipse -> Haltepunkt umschalten auswählen

3. Klicken Sie mit der rechten Maustaste auf Umschaltpunkt -> wählen Sie Haltepunkteigenschaften

4. Überprüfen Sie die Bedingte Kontrollkästchen -> Schreib TabList [i] .equalsIgnoreCase ( "amm") in Textfeld -> Klicken Sie auf OK

5. Klicken Sie mit der rechten Maustaste auf Klasse -> Debuggen als -> Java-Anwendung

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.