Ich debugge eine normale Java-Anwendung, keine GUI, nur eine Menge Berechnungen und ~ 5 Aufrufe im Stack für den Haupt-Thread, wenn das Problem auftritt. Grundsätzlich sagt es in der lokalen Variablenüberwachung immer "Daten sammeln".
Anstatt Schritt für Schritt zu gehen, habe ich versucht, einen Haltepunkt direkt nach dem Drücken von "Resume" hinzuzufügen. Jetzt heißt es "Warten, bis der letzte Debugger-Befehl abgeschlossen ist".
Hat jemand dieses Problem schon mal gehabt? Ist das Ändern des Debuggers die einzige Möglichkeit, dies herauszufinden?
Bei IntelliJ (2017.1.4 Community Edition) wurde das Problem für mich behoben:
Führen Sie den Debugger erneut aus.
Folgendes hat es für mich auf IntelliJ 2018.2.4 behoben:
Dies ist nicht hilfreich, wenn Sie tatsächlich alle Threads für das Debuggen anhalten müssen, aber die Meldungen "Daten werden gesammelt ..." und "Warten, bis der letzte Debugger-Befehl abgeschlossen ist" für mich entfernt wurden. Die Einstellung bleibt auch für nachfolgende Haltepunkte erhalten, sodass Sie sie nur einmal ändern müssen.
Ich bin gerade auf dasselbe Thema gestoßen. In meinem Fall war es eine Klasse (KafkaStream) im Breakpoint-Stack-Trace mit einer "schlechten" toString
-Methode. Die toString
-Methode blockiert und hängt daher den Debugger. Ich habe die toString
-Methode im Hauptzeilenkode getestet und den Hauptthread aufgehängt (d. H. Dies ist kein spezifisches Debugger-Problem).
Hier ist der Stack-Trace für meinen Thread, der den Haltepunkt erreicht hat (in einer Zeile, die gerade versucht hat, ein boolesches Attribut meiner Klasse zu testen):
Intellij bietet eine Möglichkeit, um mein Problem zu umgehen. Damit können Sie überschreiben, wie der Debugger die Klasse darstellt:
Wenn Ihr Problem zurückkommt, schlage ich vor, einen Thread-Dump (innerhalb oder außerhalb der IDE) zu erstellen und zu sehen, was Ihr Thread tut.