2010-11-01 7 views
9

Pour certains projets en cours, je travaille avec plusieurs structures de données qui sont assez volumineuses (dans le domaine des éléments 10K). Pour pouvoir accéder à ces données dans des listes, j'ai besoin d'utiliser des boucles et des itérateurs, ce qui peut être pénible quand la zone à problème est dans la dernière moitié de la liste. J'ai donc passé beaucoup de temps avec mon doigt sur le bouton F8 dans le débogueur d'Eclipse pour faire une boucle sur chaque élément d'une boucle d'itération. Cela devient pire lorsque vous devez parcourir cette section particulière plusieurs fois pour avoir une idée de la raison pour laquelle le code réagit d'une manière particulière. Si vous avez une idée générale combien de fois une boucle doit être exécutée avant qu'une zone de problème soit atteinte, est-il possible de définir un point de rupture de boucle à exécuter jusqu'à ce point puis de mettre en pause?Débogage des boucles

Répondre

3

Je crois qu'il ya une meilleure façon de le faire, mais vous pouvez créer un bloc trivial de code dans la boucle qui exécute seulement à une certaine itération, et mettre le point d'arrêt à l'intérieur de celui-ci.

if (loopIndex == 1000) { 
    int number = 14;   //Break here 
} 
+0

C'est à peu près ce que je considérais à l'origine comme une solution, mais je voulais juste savoir s'il y avait une meilleure réponse – Jason

0

En utilisant cet exemple:

for(int i=0;i<10000;i++){ 
    System.out.println(i); 
} 

Définir un point d'arrêt sur la ligne d'impression, puis faites un clic droit dessus et sélectionnez Breakpoint Properties.... De là, vous pouvez définir une condition pour déclencher le point d'arrêt. Ceci est similaire à un conditionnel que vous auriez dans une déclaration if. Si vous voulez déclencher le point d'arrêt quand i vaut 6000, cochez la case Conditional et essayez ceci: enter image description here