Comment utiliser un point d'arrêt conditionnel dans Eclipse?

117

Je veux savoir comment placer un point d'arrêt conditionnel dans Eclipse. J'ai un code comme:

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

Maintenant, je veux mettre un point d'arrêt sur la ligne avec la flèche mais je veux qu'il se déclenche uniquement si:

tablist[i].equalsIgnoreCase("LEADDELEGATES");
MozenRath
la source

Réponses:

179

Mettez votre point d'arrêt. Cliquez avec le bouton droit sur l'image du point d'arrêt sur la marge et choisissez Propriétés du point d'arrêt :

entrez la description de l'image ici

Configurez la condition comme bon vous semble:

entrez la description de l'image ici

ZenMaster
la source
9
La dernière Eclipse inclut également ces options directement dans la vue des points d'arrêt.
Michael Brewer-Davis
1
Merci mon pote! a sauvé beaucoup de mon temps! :)
MozenRath
8
Hou la la! J'utilise: if(condition){System.out.println("debug");}et je romps sur la déclaration imprimée depuis des années.
Cruncher
5
N'oubliez pas d'OMITER le ;à la fin - j'ai eu une erreur lorsque je l'ai inclus.
modulitos
Merci beaucoup! Cela a été très utile.
hfontanez
11

Créer un point d'arrêt normal sur la doIt(tablist[i]);ligne

Clic droit -> Propriétés

Cochez 'Conditionnel'

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

Garrett Hall
la source
N'avez-vous pas besoin d'un point-virgule à la fin de l'expression? Je ne peux faire fonctionner les points d'arrêt conditionnels que si j'ajoute le point-virgule (et même pas très souvent).
Cajunluke
3
@CajunLuke Même chose ici. Je viens de l'essayer avec un final T[](type non générique) et obtenez Conditional breakpoint has compilation error(s). Amusant, ma condition est bonds==nullet la raison dans la boîte de dialogue d'erreur est invalid AssignmentOperator. soupir Parfois, Eclipse se comporte plus comme un humain de 12 ans que comme un logiciel de 12 ans.
KomodoDave
3

D' Eclipsepedia sur la façon de définir un point d'arrêt conditionnel:

Tout d'abord, définissez un point d'arrêt à un emplacement donné. Ensuite, utilisez le menu contextuel sur le point d'arrêt dans la marge de gauche de l'éditeur ou dans la vue Points d'arrêt dans la perspective Débogage et sélectionnez les propriétés du point d'arrêt. Dans la boîte de dialogue, cochez la case Activer la condition et entrez une condition Java arbitraire, telle que list.size()==0. Désormais, chaque fois que le point d'arrêt est atteint, l'expression est évaluée dans le contexte de l'exécution du point d'arrêt, et le point d'arrêt est ignoré ou honoré, selon le résultat de l'expression.

Les conditions peuvent également être exprimées en termes d'autres attributs de point d'arrêt, tels que le nombre de hits.


la source
Votre lien n'a pas été ?codé. Essayez ceci .
KomodoDave
Merci, appréciez-le
2

1. Créez une 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. Faites un clic droit sur le côté gauche de System.out.println (tablist [i]); dans Eclipse -> sélectionnez Toggle Breakpoint

3. Faites un clic droit sur le point de basculement -> sélectionnez les propriétés du point d' arrêt

4. Vérifiez la condition Check Box -> écriture tablist [i] .equalsIgnoreCase ( "amm") dans le champ texte -> Cliquez sur OK

5. Faites un clic droit sur la classe -> Déboguer en tant que -> Application Java

Prashant Sahoo
la source