„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Debuggen ohne Haltepunkte

Debuggen ohne Haltepunkte

Veröffentlicht am 14.08.2024
Durchsuche:358

In anderen Sprachen lesen: English Español 中文

In einem typischen Debugging-Szenario würden Sie Haltepunkte festlegen, um dem Debugger mitzuteilen, wann Ihr Programm angehalten werden soll. Ein Haltepunkt entspricht normalerweise dem Moment, der den Ausgangspunkt für weitere Untersuchungen markiert.

Die Entscheidung, wo ein Haltepunkt gesetzt werden soll, kann eine Herausforderung sein. Es kann Situationen geben, in denen die genaue Zeile unklar ist, oder Sie möchten das Programm lieber auf der Grundlage der Zeit als auf der Grundlage eines bestimmten Codes anhalten.

In diesem Artikel werfen wir einen Blick auf die Funktion Programm anhalten von IntelliJ IDEA – eine weniger bekannte Debugging-Technik, die in einigen Szenarien, einschließlich der oben beschriebenen, äußerst leistungsstark sein kann. Wir werden die Anwendungsfälle und Einschränkungen besprechen und das Geheimnis Schritt für Schritt lüften.

Was ist Pause?

Pause Program ist eine Funktion des IntelliJ IDEA-Debuggers, die es Ihnen ermöglicht, Ihre Anwendung zu jedem Zeitpunkt willkürlich anzuhalten. Darüber hinaus müssen Sie nicht einmal den Anwendungscode kennen. Tatsächlich können Sie es einfach ignorieren!

Depurar sem Pontos de Interrupção

Um ein Programm anzuhalten, klicken Sie in der Debugger-Symbolleiste auf Programm anhalten. Dann stoppt das Programm mitten in dem, was Sie gerade tun.

Einschränkungen

Auf den ersten Blick sieht ein angehaltenes Programm möglicherweise genauso aus wie eines, das an einem Haltepunkt angehalten wurde. Dies trifft jedoch nur bedingt zu.

Depurar sem Pontos de Interrupção

Es wäre richtig, Programm anhalten als eine Art Thread-Dump plus zu betrachten. Sie können sowohl Variablen als auch Threads weiterhin wie gewohnt überprüfen. Einige der erweiterten Funktionen, wie z. B. Ausdruck auswerten, funktionieren jedoch nicht.

Anwendungsfälle

Es gibt unzählige Möglichkeiten, Programm pausieren zu verwenden. Es kann oft austauschbar mit herkömmlichen Haltepunkten verwendet werden. Es gibt jedoch Szenarien, in denen die Verwendung von Programm anhalten ein geeigneterer Ansatz ist. Betrachten wir einige davon.

Nicht reagierende Apps

Wenn ein Einfrieren der Benutzeroberfläche (UI) auftritt, liegt dies normalerweise daran, dass der UI-Thread blockiert ist.

Depurar sem Pontos de Interrupção

Pause Program könnte in diesem Fall nützlich sein, da es Ihnen ermöglicht, die Anwendung anzuhalten, während sie nicht reagiert, und den Aufrufstapel des UI-Threads zu untersuchen. Dies reicht normalerweise aus, um das Problem zu diagnostizieren.

Fehlende Schriftarten

Wie bereits erwähnt, können Sie mit Programm anhalten den Quellcode, der Ihnen möglicherweise ohnehin fehlt, einfach ignorieren. Obwohl dieses Szenario nicht sehr häufig vorkommt, würden Haltepunkte Ihnen nicht weiterhelfen, wenn Sie darauf stoßen.

Hier kommt Programm anhalten ins Spiel!

Depurar sem Pontos de Interrupção

Schlösser

Wenn Sie ein Synchronisierungsproblem wie einen Deadlock oder Livelock vermuten, kann Ihnen Programm anhalten dabei helfen, die genauen Threads und Sperren zu finden, die das Problem verursachen.

Depurar sem Pontos de Interrupção

In diesem Fall pausieren Sie das Programm und überprüfen Sie die Thread-Liste. Es wird angezeigt, welche Threads blockiert sind. Wenn Sie zum Ausführungspunkt navigieren, sehen Sie auch die kritischen Abschnitte, in denen sie gesperrt sind. Diese Informationen können Ihnen dabei helfen, eine Lösung zu finden.

Geheimer Schritt-für-Schritt-Tipp

Wie ich bereits erwähnt habe, schränkt Programm anhalten Ihren Zugriff auf einige der erweiterten Funktionen des Debuggers ein. Wenn Sie versucht haben, bestimmte Funktionen zu verwenden, während eine Anwendung angehalten ist, wurde Ihnen möglicherweise eine Fehlermeldung angezeigt, die besagt: Methoden können nach Pause-Aktion nicht ausgewertet werden.

Depurar sem Pontos de Interrupção

Es gibt jedoch eine Abkürzung für diese Einschränkung.

Nachdem Sie eine Anwendung angehalten haben, führen Sie die Aktion Schritt für Schritt aus. Step Into oder Step Over reichen aus. Sobald dies erledigt ist, befinden Sie sich in einer regulären Debugging-Sitzung, ähnlich wie beim Anhalten einer Anwendung mithilfe eines Haltepunkts. Alle erweiterten Funktionen sind jetzt freigeschaltet!

Abschluss

Das war's für heute! Ich hoffe, Sie finden diese Tipps und Tricks hilfreich.

Wenn Sie an weiteren Artikeln zum Thema Debuggen und Profiling interessiert sind, schauen Sie sich einige meiner anderen Artikel an:

  • Debugger.godMode() – Eine JVM-Anwendung mit dem Debugger hacken
  • Fehlerbehebung bei langsamem Debugger
  • Debuggen inaktiver Anwendungen
  • Was stimmt nicht mit createDirectories()? - CPU-Profil-Leitfaden

Wenn ich etwas Spezielles zum Debuggen in Java besprechen soll, zögern Sie nicht, mich zu kontaktieren! Ihre Meinung hilft dabei, die für Sie interessantesten Inhalte zu priorisieren und zu veröffentlichen.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/flounder4130/depurar-sem-pontos-de-interrupcao-5ekk?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3