2016-06-16 1 views
7

Ich debugge eine normale Java-Anwendung, keine GUI, nur eine Menge von Berechnungen und ~ 5 Aufrufe im Stapel für den Haupt-Thread, wenn das Problem auftritt. Im Grunde sagt es immer "Sammeln von Daten" in der lokalen Variablenuhr.IntelliJ Debugger bleibt stecken

enter image description here

Also anstatt zu gehen Schritt-für-Schritt habe ich versucht, einen Haltepunkt unmittelbar nach einer Presse „Fortsetzen“ hinzuzufügen. Jetzt heißt es "Warten bis der letzte Debugger-Befehl abgeschlossen ist". enter image description here

Hatte jemand dieses Problem vorher? Ist das Ändern des Debuggers die einzige Möglichkeit, das herauszufinden?

+0

Ihr Debuggen einer Anwendung auf Ihrem Computer oder Remote-Debuggen einer Anwendung auf einem anderen Computer? – Kirby

+0

@Kirby Ich bin Debugging auf meinem physischen lokalen Rechner –

+0

Ich habe das Problem zuvor mit Remote-Debugging gesehen, wo der Remote-Computer eine schlechte Netzwerkverbindung hat. Ich habe es noch nie zum Debuggen einer Anwendung erlebt, die lokal in IntelliJ ausgeführt wird. Scheint so, als würde etwas mit dem Debug-Socket kollidieren. Vielleicht hatten Sie die Anwendung zweimal ausgeführt? Vielleicht haben Sie den Debugger remote debuggt, den Debugger geschlossen und ihn dann wieder geöffnet? – Kirby

Antwort

8

Auf IntelliJ (2017.01.04 Community Edition), nach der das Problem für mich festgelegt:

  • File-> Settings
  • Typ in "toString"
  • Navigieren Sie zu bauen, Ausführung, Deployment -> Debugger-> Daten Aufrufe-> Java
  • Finden Sie die "Enable 'toString()' Objektansicht:" Checkbox
  • Uncheck die Box

Führen Sie den Debugger erneut aus.

+0

Danke, Alter! Du hast meine Zeit gespart! – Sannek8552

1

Ich lief gerade in, was wie das gleiche Problem aussieht. In meinem Fall war es eine Klasse (KafkaStream) in der Haltepunktstack-Spur mit einer "schlechten" Methode. Die toString-Methode blockiert und hängt daher den Debugger. Ich testete die toString Methode im Hauptliniencode und hängte den Hauptthread (d. H. Das ist kein Debugger-spezifisches Problem). Hier

ist der Stack-Trace für mein Thread, der den Haltepunkt (auf einer Linie, die nur versucht wurde eine Boolesche Attribut meiner Klasse zu testen):

Hung Breakpoint Stacktrace

Intellij bietet eine Möglichkeit, um zu arbeiten für mein Problem. Es ermöglicht Ihnen, außer Kraft zu setzen, wie der Debugger die Klasse macht:

Work Around

Wenn Ihr Problem, das ich einen Thread-Dump schlage vor, kommt zurück (innerhalb oder außerhalb des IDE) und sehen, was der Thread tut.

+0

Entschuldigung für die Links oben (anstatt Bilder direkt in die Antwort einzubetten), aber als ich versuchte, ein Ausrufezeichen vor den Links hinzuzufügen, bekam ich die Nachricht: "Du brauchst mindestens 10 Reputationen, um Bilder zu posten." –

+0

Anscheinend wurde das KafkaStream-Problem in einer späteren Version behoben, als ich es benutze: https://github.com/apache/kafka/commit/fe18595492ee91a6a8a796b21c66a682ee9db4a0 –