Come utilizzare il punto di interruzione condizionale in Eclipse?


117

Voglio sapere come inserire un punto di interruzione condizionale in Eclipse. Ho un codice come:

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

Ora voglio mettere un punto di interruzione sulla linea con la freccia ma voglio che si attivi solo se:

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

Risposte:


179

Metti il ​​tuo punto di interruzione. Fare clic con il pulsante destro del mouse sull'immagine del punto di interruzione sul margine e scegliere Proprietà punto di interruzione :

inserisci qui la descrizione dell'immagine

Configura le condizioni come meglio credi:

inserisci qui la descrizione dell'immagine


9
L'ultimo Eclipse include anche queste opzioni direttamente nella vista Breakpoints.
Michael Brewer-Davis

1
Grazie compagno! mi ha fatto risparmiare un sacco di tempo! :)
MozenRath

8
Wow! Uso: if(condition){System.out.println("debug");}e infrango la dichiarazione di stampa da anni.
Cruncher

5
Non dimenticare di OMETTERE ;alla fine: ho ricevuto un errore quando l'ho incluso.
modulitos

Molte grazie! Questo è stato molto utile.
hfontanez

11

Crea un punto di interruzione normale sulla doIt(tablist[i]);linea

Fare clic con il pulsante destro del mouse -> Proprietà

Seleziona "Condizionale"

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


Non hai bisogno di un punto e virgola alla fine dell'espressione? Posso far funzionare i punti di interruzione condizionali solo se aggiungo il punto e virgola (e non molto spesso anche allora).
Cajunluke

3
@CajunLuke Stesso qui. L'ho appena provato con un final T[](tipo non generico) e ottieni Conditional breakpoint has compilation error(s). In modo divertente, la mia condizione è bonds==nulle il motivo nella finestra di dialogo dell'errore è invalid AssignmentOperator. sigh A volte Eclipse si comporta più come un essere umano di 12 anni che come un software di 12 anni.
KomodoDave

3

Da Eclipsepedia su come impostare un punto di interruzione condizionale:

Innanzitutto, imposta un punto di interruzione in una determinata posizione. Quindi, utilizzare il menu di scelta rapida sul punto di interruzione nel margine sinistro dell'editor o nella vista Punti di interruzione nella prospettiva Debug e selezionare le proprietà del punto di interruzione. Nella finestra di dialogo, seleziona Abilita condizione e inserisci una condizione Java arbitraria, come list.size()==0. A questo punto, ogni volta che viene raggiunto il punto di interruzione, l'espressione viene valutata nel contesto dell'esecuzione del punto di interruzione e il punto di interruzione viene ignorato o rispettato, a seconda del risultato dell'espressione.

Le condizioni possono anche essere espresse in termini di altri attributi del punto di interruzione, come il conteggio degli hit.


Il tuo link non ha la ?codifica. Prova questo .
KomodoDave

Grazie, lo apprezzo

2

1. Crea una classe

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. Fare clic con il pulsante destro del mouse sul lato sinistro di System.out.println (tablist [i]); in Eclipse -> seleziona Toggle Breakpoint

3. Fare clic con il pulsante destro del mouse sul punto di commutazione -> selezionare Proprietà punto di interruzione

4. Seleziona la casella di controllo condizionale -> scrivi tablist [i] .equalsIgnoreCase ("amm") nel campo di testo -> fai clic su OK

5. Fare clic con il pulsante destro del mouse sulla classe -> Debug come -> Applicazione Java

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.