J'essaie de dépanner une JUnit. Dans le code source, j'ai défini le point d'arrêt à deux endroits: 1) dans une ligne où un membre statique est initialisé 2) la première ligne d'un des cas de test.
Le débogueur s’arrête dans la ligne d’initialisation du champ statique. Mais cela ne s'arrête pas dans le cas de test. Peu importe où j'ai défini le point d'arrêt dans le scénario de test, le débogueur ne s'arrête pas là. Je sais avec certitude que le scénario de test est exécuté car je peux voir les messages de journal que j'ai ajoutés apparaissent dans le journal.
Toute aide serait grandement appréciée.
J'utilise Eclipse Galileo et JUnit4 Launcher.
Cela pourrait être lié à l'un des bogues de JDK 6 Update 14, comme indiqué dans les notes de publication de JDK 6 update 15 .
Si cela s'avère effectivement être le problème, vous devriez passer à une version supérieure du JDK (ce n'est pas une garantie cependant, puisque des correctifs ont été publiés pour 6u16, 6u18 et 7b1 ). La meilleure solution consiste à utiliser le drapeau -XX: + UseParallelGC. L'augmentation de la taille minimale et maximale du segment de mémoire, pour retarder le premier GC, apporte un soulagement temporaire.
À propos, utilisez ce rapport de bogue dans Eclipse pour suivre la progression des autres.
La solution pourrait être aussi simple que de cliquer sur Exécuter/Ignorer tous les points d'arrêt. Travaillé pour moi.
Assurez-vous, sous Exécuter> Configurations de débogage, que l'option "Arrêter en mode principal" est sélectionnée, le cas échéant.
Habituellement, lorsque cela m’arrive (cela est rare mais cela se produit), cela signifie que le code en cours d’exécution est différent de celui de l’éditeur. Il arrivera de temps en temps pour Eclipse que les classes construites et le code dans l'éditeur soient désynchronisés. Lorsque cela se produit, j'obtiens une sorte de comportement bizarre du débogueur (débogage de lignes vides, saut de lignes de codes, etc.).
Redémarrez Eclipse, nettoyez tous les projets et reconstruisez tout, en règle générale. J'avais aussi les plugins Maven (les anciennes versions ... ne l'avaient pas depuis longtemps) qui avaient tendance à le faire aussi.
Sinon, cela pourrait être un bug, peut-être celui que Vineet a déclaré,
J'espère que cela t'aides
Vous avez peut-être accidentellement ignoré tous les points d'arrêt de la barre d'outils Eclipse. Pour résoudre ce problème, accédez à Eclipse -> Exécuter -> Ignorer tous les points d'arrêt.
Projet -> Clean a semblé travailler pour moi sur JRE 8
Supprimez tous les points d'arrêt et rajoutez-les.
Pour que le débogueur fonctionne avec remote, les fichiers Java .class doivent être complétés avec les informations de débogage. Si " - g: none "option a été transmise au compilateur, le fichier de classe n'aura pas les informations nécessaires et par conséquent le débogueur ne sera pas en mesure de faire correspondre les points d'arrêt du code source avec cette classe distante. En attendant, si les fichiers jars/class étaient obfuscated , ils n'auront pas non plus d'informations de débogage. Selon vos réponses, ce n'est probablement pas votre cas, mais ces informations pourraient être utiles aux autres personnes confrontées à la même problème.
Assurez-vous de déclarer le paquet en haut. Dans mon code groovy, cela s'arrête aux points de rupture:
package Pkg1
import Java.awt.event.ItemEvent;
isMule = false
class LineItem {
// Structure defining individual DB rows
public String ACCOUNT_CODE
public String ACCOUNT_DESC
...
Cela ne s'arrête pas aux points d'arrêt:
import Java.awt.event.ItemEvent;
isMule = false
class LineItem {
// Structure defining individual DB rows
public String ACCOUNT_CODE
public String ACCOUNT_DESC
...
Pour JDK7, exécutez-> Configurations de débogage, cochez la case "Laisser JUnit actif après un test lors du débogage".
Cela m'est arrivé une fois, quand j'avais décoché "Exécuter> Construire automatiquement" et que j'avais oublié de le vérifier à nouveau.
Pour supprimer les points d'arrêt :
Si rien ne marche-
Un commentaire supplémentaire concernant la réponse de Vineet Reynolds.
J'ai découvert que je devais mettre -XX:+UseParallelGC
dans Eclipse.ini
J'ai configuré les arguments de la machine virtuelle (vm) comme suit
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M
cela a résolu le problème.
Vérifiez également si les points d'arrêt des autres lignes fonctionnent, il peut s'agir d'un bogue dans le débogueur. J'ai eu un problème avec le débogueur Eclipse où placer un point d'arrêt sur une affectation booléenne dont le code était sur la ligne suivante ne fonctionnait pas . J'ai signalé ceci ici , mais le mettre sur la ligne précédente ou suivante l’a fait.
Aller à Right click->Debug Configuration
et vérifiez si trop d’instances de débogage sont créées. Mon problème a été résolu lorsque j'ai supprimé plusieurs instances de débogage de la configuration et que le débogage venait de démarrer.
Un autre problème possible est que le port du débogueur peut être bloqué par le pare-feu. Par exemple, j'utilisais mule anypoint studio (v 5.4.3). Le port de débogueur par défaut est 6666. Lorsqu'un flux est exécuté, il ne s'arrête pas au point d'arrêt. lorsque j'ai changé le port sur un autre (par exemple 8099), cela a bien fonctionné.
Créer un nouvel espace de travail a fonctionné pour moi.
Si vous êtes sur Eclipse,
Faites un clic droit sur le dossier de votre projet sous "Package Explorer".
Aller à la source -> Nettoyer et choisir votre projet.
Cela nettoiera tout désordre et votre point d'arrêt devrait fonctionner maintenant.
Dans mon cas, j'avais plusieurs projets dans le même espace de travail. Le fichier Java que je tentais de déboguer était présent dans plusieurs projets avec le même package.
Je n'avais pas besoin de l'autre projet, alors fermez simplement les projets non liés (ou supprimez le fichier d'un projet non lié).