Ich versuche, eine JUnit zu erschießen. Im Quellcode habe ich den Haltepunkt an zwei Stellen festgelegt: 1) in einer Zeile, in der ein statisches Element initialisiert wird 2) in der ersten Zeile eines der Testfälle.
Der Debugger stoppt in der Initialisierungszeile des statischen Felds. Aber es hört im Testfall nicht auf. Egal wo ich den Haltepunkt im Testfall setze, der Debugger hört hier nicht auf. Ich weiß mit Sicherheit, dass der Testfall ausgeführt wird, da die von mir hinzugefügten Protokollnachrichten im Protokoll angezeigt werden.
Jede Hilfe wäre sehr dankbar.
Ich verwende Eclipse Galileo und JUnit4 Launcher.
Antworten:
Dies könnte mit einem der Fehler in JDK 6 Update 14 zusammenhängen, wie in den Versionshinweisen für JDK 6 Update 15 angegeben .
Wenn sich herausstellt, dass dies tatsächlich das Problem ist, sollten Sie zu einer höheren Version des JDK wechseln (dies ist jedoch keine Garantie, da Korrekturen für 6u16, 6u18 und 7b1 veröffentlicht wurden ). Am besten verwenden Sie das Flag -XX: + UseParallelGC. Das Erhöhen der Größe der minimalen und maximalen Heap-Größe, um den ersten GC zu verzögern, bringt vorübergehende Erleichterung.
Verwenden Sie diesen Fehlerbericht übrigens in Eclipse, um zu verfolgen, wie es anderen ergangen ist.
quelle
Die Korrektur kann so einfach sein wie das Klicken auf Ausführen / Überspringen aller Haltepunkte. Hat für mich gearbeitet.
quelle
Stellen Sie sicher, dass unter Ausführen> Debug-Konfigurationen die Option "In Hauptstopp stoppen" ausgewählt ist, falls dies für Ihre Situation zutreffend ist.
quelle
Wenn mir dies passiert (selten, aber es passiert), bedeutet dies normalerweise, dass sich der ausgeführte Code vom Code im Editor unterscheidet. Bei Eclipse kommt es von Zeit zu Zeit vor, dass die erstellten Klassen und der Code im Editor nicht synchron sind. Wenn das passiert, bekomme ich alle möglichen seltsamen Debugger-Verhaltensweisen (Debuggen von Leerzeilen, Überspringen von Codezeilen usw.).
Wenn Sie Eclipse neu starten, alle Projekte bereinigen und alles neu erstellen, werden die Dinge normalerweise geklärt. Ich hatte auch die Maven-Plugins (ältere Versionen ... hatten sie schon eine Weile nicht mehr), die dazu neigten.
Andernfalls könnte es sich um einen Fehler handeln, der möglicherweise von Vineet angegeben wurde.
Hoffe das hilft
quelle
Möglicherweise haben Sie versehentlich alle Haltepunkte in der Eclipse-Symbolleiste übersprungen. Um dies zu beheben, gehen Sie zu Eclipse -> Ausführen -> Alle Haltepunkte überspringen.
quelle
Projekt -> Clean schien für mich an JRE 8 zu funktionieren
quelle
Um mit Remote zu debuggen, müssen die Java-Klassendateien zusammen mit den Debugging-Informationen eingehalten werden. Wenn die Option " -g: none " an den Compiler übergeben wurde, enthält die Klassendatei nicht die erforderlichen Informationen, und daher kann der Debugger keine Haltepunkte im Quellcode mit dieser Klasse in Remote abgleichen. Wenn Jars / Klassendateien verschleiert wurden , haben sie auch keine Debug-Informationen. Laut Ihren Antworten ist dies höchstwahrscheinlich nicht Ihr Fall, aber diese Informationen könnten für andere nützlich sein, die mit demselben Problem konfrontiert sind.
quelle
In meinem Fall war das Problem, dass ich die Debug-Ansicht in der Debug-Perspektive nicht geöffnet hatte, also:
1 - Stellen Sie sicher, dass Sie die Debug-Perspektive geöffnet haben:
2 - Stellen Sie sicher, dass die Debug-Ansicht geöffnet ist:
quelle
Entfernen Sie alle Haltepunkte und fügen Sie sie erneut hinzu.
quelle
Aktivieren Sie für JDK7 "Ausführen-> Debug-Konfigurationen" die Option "JUnit nach einem Testlauf beim Debuggen weiter ausführen".
quelle
Ist mir einmal passiert, als ich "Ausführen> Automatisch erstellen" deaktiviert und vergessen hatte, es erneut zu überprüfen.
quelle
Stellen Sie sicher, dass Sie das Paket oben deklarieren. In meinem groovigen Code stoppt dies an Haltepunkten:
Dies hört nicht an Haltepunkten auf:
quelle
So entfernen Sie die Haltepunkte :
quelle
Überprüfen Sie auch, ob Haltepunkte in anderen Zeilen funktionieren. Dies kann ein Fehler im Debugger sein. Ich hatte ein Problem mit dem Eclipse-Debugger, bei dem das Setzen eines Haltepunkts für eine boolesche Zuweisung, deren Code in der nächsten Zeile stand, nicht funktionierte. Ich habe dies hier gemeldet , aber in der vorherigen oder nächsten Zeile.
quelle
Wenn nichts funktioniert-
quelle
Ein weiteres mögliches Problem besteht darin, dass der Debugger-Port möglicherweise von der Firewall blockiert wird. Zum Beispiel habe ich mule anypoint studio (v 5.4.3) verwendet. Der Standard-Debugger-Port ist 6666. Wenn ein Flow ausgeführt wird, wird er nicht am Haltepunkt gestoppt. Als ich den Port auf einen anderen geändert habe (z. B. 8099), hat es gut funktioniert.
quelle
Gehen Sie zu
Right click->Debug Configuration
und überprüfen Sie, ob zu viele Debug-Instanzen erstellt wurden. Mein Problem wurde behoben, als ich mehrere Debug-Instanzen aus der Konfiguration löschte und neu mit dem Debuggen begann.quelle
Wenn Sie auf Eclipse sind,
Klicken Sie mit der rechten Maustaste unter "Paket-Explorer" auf Ihren Projektordner.
Gehe zu Quelle -> Bereinige und wähle dein Projekt aus.
Dies wird alle Unordnung beseitigen und Ihr Haltepunkt sollte jetzt funktionieren.
quelle
Das Erstellen eines neuen Arbeitsbereichs hat für mich funktioniert.
quelle
In meinem Fall hatte ich mehrere Projekte im selben Arbeitsbereich. Die Java-Datei, die ich zu debuggen versuchte, war in mehr als einem Projekt mit demselben Paket vorhanden.
Ich brauchte das andere Projekt nicht, also schloss ich einfach nicht verwandte Projekte (oder entfernte die Datei aus einem nicht verwandten Projekt).
quelle
Ein zusätzlicher Kommentar zur Antwort von Vineet Reynolds.
Ich fand heraus, dass ich einstellen musste
-XX:+UseParallelGC
ineclipse.ini
Ich richte die Argumente der virtuellen Maschine (VM) wie folgt ein
das löste das Problem.
quelle
Das funktioniert bei mir:
Ich musste meine lokale Serveradresse wie folgt in die PHP- Serverkonfiguration einfügen :
Hinweis : Diese Adresse ist diejenige, die ich in meiner Apache .conf- Datei konfiguriere .
Hinweis : Der einzige Haltepunkt, der funktionierte, war der "Bruch in der ersten Zeile". Danach funktionierten die Haltepunkte nicht mehr.
Hinweis : Überprüfen Sie Ihre xdebug- Eigenschaften in Ihrer php.ini- Datei und entfernen Sie alle, die Sie für nicht erforderlich halten.
quelle