Debug wird verwendet, um den laufenden Prozess des Codes zu verfolgen. Wenn Sie den Debug-Modus aktivieren, können Sie den Ort der Ausnahme und die Änderungen an Parametern während des laufenden Prozesses analysieren und lokalisieren. Normalerweise können wir auch den Debug-Modus aktivieren, um den laufenden Codeprozess zu verfolgen und den Quellcode des Drittanbieter-Frameworks zu erfahren.
Erfahren Sie also, wie Sie Debug in Intellij IDEA verwenden, was hauptsächlich die folgenden Inhalte umfasst:
1. Der Beginn von Debug
2. Grundlegende Verwendung und Tastenkombinationen
3. Variablenanzeige
4. Berechnungsausdruck
5. Smart Step-in
6. Einstellung der Haltepunktbedingung
7. Multi -threading Debugging
8. Rollback-Haltepunkt
9. Debug unterbrechen
10. Anhang: JRebel-Aktivierung
Schauen wir uns zunächst die Schnittstelle im Debug-Modus in IDEA an.
Das Folgende ist die Benutzeroberfläche nach dem Starten des Debug-Modus in IDEA und der Eingabe des Haltepunkts. Dies ist Windows und die Symbole können sich geringfügig von den Mac-Symbolen unterscheiden. Lassen Sie uns einfach über die 8 im Bild unten markierten Stellen sprechen:
① Starten Sie den Dienst im Debug-Modus und eine Schaltfläche auf der linken Seite startet ihn im Ausführungsmodus. Während der Entwicklung starte ich normalerweise direkt den Debug-Modus, um das Debuggen des Codes jederzeit zu erleichtern.
② Haltepunkt: Klicken Sie mit der linken Maustaste in die Zeilennummernleiste auf der linken Seite oder verwenden Sie die Tastenkombination Strg+F8, um einen Haltepunkt festzulegen/aufzuheben. Die Farbe der Haltepunktzeile kann von Ihnen selbst festgelegt werden.
③ Debug-Fenster: Nachdem die Zugriffsanforderung den ersten Haltepunkt erreicht hat, wird das Debug-Fenster automatisch aktiviert. Wenn es nicht automatisch aktiviert wird, können Sie es in den Einstellungen festlegen, wie in Abbildung 1.2 dargestellt.
④ Debugging-Schaltflächen: Es gibt insgesamt 8 Schaltflächen. Die Hauptfunktionen des Debuggens entsprechen diesen Schaltflächen. Sie können die entsprechenden Tastenkombinationen anzeigen, indem Sie mit der Maus über die Schaltflächen fahren. Die gleichen entsprechenden Funktionen finden Sie in der Menüleiste Ausführen, wie in Abbildung 1.4 dargestellt.
⑤ Service-Schaltfläche: Hier können Sie Dienste schließen/starten, Haltepunkte setzen usw.
⑥Methodenaufrufstapel: Alle vom Thread zum Debuggen übergebenen Methoden werden hier angezeigt. Klicken Sie auf die Schaltfläche [Alle Frames anzeigen] in der oberen rechten Ecke. Andernfalls werden die Methoden anderer Klassenbibliotheken nicht angezeigt Es wird viele Methoden geben.
⑦ Variablen: Im Variablenbereich können Sie die Variablen in der aktuellen Methode vor dem aktuellen Haltepunkt anzeigen.
⑧ Uhren: Variablen anzeigen. Sie können die Variablen im Variablenbereich auf Uhren ziehen, um sie anzuzeigen
[Abbildung 1.1]
Abbildung 1.2]: Aktivieren Sie in den Einstellungen die Option Debug-Fenster am Haltepunkt anzeigen. Das Debug-Fenster wird dann automatisch aktiviert, nachdem die Anforderung den Haltepunkt erreicht hat
[Abbildung 1.3]: Wenn Ihr IDEE Es wird keine Symbolleiste oder Statusleiste angezeigt. Sie kann in der Ansicht geöffnet werden, um uns die Verwendung zu erleichtern. Sie können diese vier Optionen selbst ausprobieren.
[Abbildung 1.4]: In der Menüleiste Ausführen gibt es entsprechende Debugfunktionen und Sie können die entsprechenden Tastenkombinationen anzeigen.
Die Debugging-Funktion entspricht hauptsächlich den beiden Tastengruppen 4 und 5 in Abbildung 1:
1. Lassen Sie uns zunächst über die erste Tastengruppe sprechen. Von links nach rechts sind sie wie folgt:
[Abbildung 2.1 ]
Ausführungspunkt anzeigen (Alt + F10): Wenn sich Ihr Cursor in einer anderen Zeile oder Seite befindet, klicken Sie auf diese Schaltfläche, um zu der Zeile zu springen, in der der aktuelle Code ausgeführt wird.
> Schrittweise weitergehen (F8): Schrittweise weitergehen und Zeile für Zeile nach unten gehen. Wenn sich in dieser Zeile eine Methode befindet, wird die Methode nicht eingegeben.
> Schritt in (F7): Wenn sich in der aktuellen Zeile eine Methode befindet, können Sie diese Methode eingeben Methode, z. B. Zeile 25. Put-Methode.
> Schritt erzwingen (Alt + Umschalt + F7): Schritt erzwingen, kann jede Methode eingeben. Mit dieser Methode können Sie die offizielle Klassenbibliothek aufrufen, wenn Sie den zugrunde liegenden Quellcode anzeigen.
> Aussteigen (Umschalt + F8): Verlassen Sie die Methode, in die Sie eingetreten sind, zum Methodenaufrufpunkt. Zu diesem Zeitpunkt wurde die Methode ausgeführt, aber die Zuweisung wurde noch nicht abgeschlossen.
> Drop Frame (Standard: keiner): Rollback-Haltepunkt, detailliert in den folgenden Kapiteln.
> Zum Cursor ausführen (Alt + F9): Zum Cursor ausführen, Sie können den Cursor auf die Zeile positionieren, die Sie anzeigen möchten, und dann diese Funktion verwenden, der Code wird ohne zur Cursorzeile ausgeführt Bruchpunkt.
> Ausdruck auswerten (Alt + F8): Berechnen Sie den Ausdruck, der in den folgenden Kapiteln ausführlich beschrieben wird.
2. Die zweite Tastengruppe, insgesamt 7 Tasten, sieht von oben nach unten wie folgt aus:
[Abbildung 2.2]
> : Erneut ausführen Das Programm beendet den Dienst und startet das Programm dann neu.
> „Tech“-Anwendung aktualisieren (Strg + F5): Programm aktualisieren, normalerweise kann diese Funktion ausgeführt werden, nachdem Ihr Code geändert wurde. Die entsprechende Operation dieser Funktion befindet sich in der Dienstkonfiguration, wie in Abbildung 2.3 dargestellt.
> Programm fortsetzen (F9): Wenn Sie beispielsweise zwei Haltepunkte in Zeile 20 und 25 haben und derzeit zur Zeile 20 laufen, drücken Sie F9, um zum nächsten Haltepunkt zu gelangen. (d. h. Zeile 25) und drücken Sie dann F9, um den gesamten Prozess auszuführen, da später keine Haltepunkte mehr vorhanden sind.
> Programm anhalten: Pausieren Sie das Programm und aktivieren Sie Debug. Es wurde noch keine spezifische Verwendung gefunden.
> Stop 'xxx' (Strg + F2): Drücken Sie zweimal hintereinander, um das Programm zu schließen. Manchmal werden Sie feststellen, dass beim Schließen und erneuten Starten des Dienstes gemeldet wird, dass der Port belegt ist. Dies liegt daran, dass der Dienst nicht vollständig geschlossen ist und Sie daher alle JVM-Prozesse beenden müssen.
> Haltepunkte anzeigen (Strg + Umschalt + F8): Alle Haltepunkte anzeigen, die in späteren Kapiteln behandelt werden.
> Haltepunkte stumm schalten: Nach Auswahl werden alle Haltepunkte ausgegraut und die Haltepunkte werden ungültig. Klicken Sie erneut und der Haltepunkt wird rot und ist wirksam. Wenn Sie nur einen bestimmten Haltepunkt deaktivieren möchten, können Sie mit der rechten Maustaste auf den Haltepunkt klicken, um die Option „Aktiviert“ abzubrechen (siehe Abbildung 2.4). Der Haltepunkt dieser Zeile wird dann deaktiviert.
[Abbildung 2.3]: Programm aktualisieren. Wählen Sie bei der Aktion „Aktualisieren“ aus, was beim Durchführen des Aktualisierungsvorgangs geschieht. Wählen Sie im Allgemeinen „Klassen und Ressourcen aktualisieren“, dh Klassen und Ressourcendateien aktualisieren.
Im Allgemeinen ist es besser, Hot-Deployment-Plug-Ins wie JRebel zu verwenden, damit Sie den Dienst nicht jedes Mal neu starten müssen, wenn Sie den Code ändern. Wie Sie JRebel aktivieren, finden Sie im letzten Kapitel.
Der Handschlaf kann ausgelöst werden, wenn das IDEA-Fenster den Fokus verliert. Das heißt, wenn Sie von der Idee zum Browser wechseln, können Sie im Allgemeinen „Nichts tun“ festlegen wird dazu führen, dass es relativ ressourcenintensiv ist.
三、Variablenansicht
Während des Debugging-Prozesses ist es sehr wichtig, Änderungen an Variablen zu verfolgen und anzuzeigen. Hier sind einige Stellen, an denen Sie Variablen in IDEA I anzeigen können Ich glaube, die meisten Menschen werden sie verstehen.
1. Wie folgt wird in IDEA der Wert der aktuellen Variablen nach der Zeile angezeigt, in der sich der Parameter befindet.
[Abbildung 3.1]
[Abbildung 3.2]
[Abbildung 3.3]
3. Ansicht in Variablen, wodurch alle Variablen in der aktuellen Methode angezeigt werden.[Abbildung 3.4]
4. Klicken Sie unter „Uhren“ auf „Neue Uhr“ und geben Sie die Variablen ein, die Sie anzeigen möchten. Oder Sie können es von Variables nach Watche ziehen, um es anzuzeigen.[Bild 3.5] Wenn Sie feststellen, dass Sie keine Uhren haben, befindet sich diese möglicherweise an der Stelle, an der sich das Bild unten befindet.
[Bild 3.6]
[Bild 3.7]
Der zuvor erwähnte Berechnungsausdruck wird in der Schaltfläche in Abbildung 4.1, Ausdruck auswerten (Alt + F8). Mit dieser Operation können Sie den Wert eines Ausdrucks während des Debuggens berechnen, ohne die Informationen auszugeben.[Abbildung 4.1]
1. Drücken Sie Alt + F8 oder die Taste, oder Sie können einen Ausdruck auswählen und dann Alt + F8, um das Fenster zur Berechnung des Ausdrucks zu öffnen. Drücken Sie wie folgt die Eingabetaste oder klicken Sie auf Auswerten, um den Wert des Ausdrucks zu berechnen.Dieser Ausdruck kann nicht nur eine allgemeine Variable oder ein Parameter sein, sondern auch eine Methode. Wenn Sie mehrere Methoden in einer Codezeile aufrufen, können Sie auf diese Weise den Rückgabewert einer Methode anzeigen.
[Abbildung 4.2]
2. Variablen festlegen Im Berechnungsausdrucksfeld können Sie den Wert der Variablen ändern, was es uns manchmal erleichtert, verschiedene Fehler zu beheben es lohnt sich nicht.
[Abbildung 4.3]
Denken Sie darüber nach, es gibt mehrere Methoden in einer Codezeile , wie kann man Enter nur auf eine bestimmte Weise wählen? Ich habe bereits erwähnt, dass Sie zum Aufrufen der Methode „Eintreten“ (Alt + F7) oder „Eintreten erzwingen“ (Alt + Umschalt + F7) verwenden können. Diese beiden Vorgänge werden jedoch nacheinander entsprechend der Reihenfolge des Methodenaufrufs eingegeben, was problematischer ist.
Dann ist Smart Step Into sehr praktisch. Diese Funktion ist in Ausführen, Smart Step Into (Umschalt + F7) zu sehen, wie in Abbildung 5.1 gezeigt
[ Abbildung 5.1]
Drücken Sie Umschalt + F7. Es wird automatisch die aktuelle Haltepunktzeile gefunden und die Methoden aufgelistet, die eingegeben werden müssen, wie in Abbildung 5.2 gezeigt. Klicken Sie auf die Methode, um das Innere der Methode einzugeben.
Wenn es nur eine Methode gibt, geben Sie direkt ein, ähnlich wie bei Force Step Into.
[Abbildung 5.2]
Durch Festlegen von Haltepunktbedingungen stoppt das System, wenn die Bedingungen erfüllt sind . am Haltepunkt, andernfalls direkt ausführen.
Wenn wir eine relativ große Sammlung oder ein Array durchlaufen, setzen wir normalerweise einen Haltepunkt in der Schleife. Müssen wir uns die Werte der Variablen einzeln ansehen? Es muss anstrengend sein, und vielleicht haben Sie es verpasst und es lohnt sich, es noch einmal zu tun.
1. Klicken Sie mit der rechten Maustaste auf den Haltepunkt, um die Bedingungen des aktuellen Haltepunkts direkt festzulegen, wie in Abbildung 6.1 dargestellt. Der Haltepunkt wird nur wirksam, wenn ich exist auf true setze.
[Abbildung 6.1]
2. Klicken Sie auf Haltepunkte anzeigen (Strg + Umschalt + F8), um alle Haltepunkte anzuzeigen.
Java Line Breakpoints zeigt alle Haltepunkte auf der rechten Seite an, um die Haltepunktbedingungen festzulegen.
Wenn Sie „Nachricht an Konsole protokollieren“ aktivieren, wird die aktuelle Haltepunktzeile an die Konsole ausgegeben, wie in Abbildung 6.3 dargestellt.
Wenn Sie „Auswerten und protokollieren“ aktivieren, können Sie den Ausdruck bei der Ausführung berechnen Diese Codezeile wertet man aus und gibt das Ergebnis an die Konsole aus.
[Bild 6.2]
[Bild 6.3]
Filter Filter, das sind im Allgemeinen Da sie nicht häufig verwendet werden, erklären wir kurz ihre Bedeutung.
Instanzfilter: Instanzfilterung, geben Sie die Instanz-ID ein (die Instanz-ID in Abbildung 6.5), aber ich weiß nicht, warum Freunde, die es wissen, eine Nachricht hinterlassen können.
Klassenfilter: Klassenfilterung, Filterung basierend auf dem Klassennamen, ebenfalls fehlgeschlagen....
Durchlaufanzahl: Wird in Schleifen verwendet. Wenn sich der Haltepunkt in der Schleife befindet, können Sie diesen Wert festlegen , Nach wie vielen Malen stoppt die Schleife am Haltepunkt, nachfolgende Schleifen stoppen am Haltepunkt.
[Abbildung 6.4]
Durch das Festlegen von Ausnahmehaltepunkten wird die Ausnahmezeile automatisch lokalisiert, wenn im Programm eine Ausnahme auftritt, die abgefangen werden muss.
Wie in Abbildung 6.6 gezeigt, klicken Sie auf das +-Zeichen, um Java-Ausnahme-Haltepunkte hinzuzufügen und Ausnahme-Haltepunkte hinzuzufügen. Geben Sie dann die Ausnahmeklasse ein, die Haltepunkte erfordert, wie in Abbildung 6.7 dargestellt. Anschließend können Sie die hinzugefügten Ausnahmehaltepunkte unter Java-Ausnahmehaltepunkte sehen. Ich habe hier einen NullPointerException-Haltepunkt hinzugefügt, wie in Abbildung 6.8 gezeigt. Nachdem eine Nullzeigerausnahme auftritt, befindet sie sich automatisch in der Nullzeigerausnahmezeile.[Bild 6.6]
>
Normalerweise führen wir das Debuggen in einem Thread durch und gehen Schritt für Schritt vor. Aber manchmal stellen Sie fest, dass Sie beim Debuggen nicht einmal eine weitere Anfrage initiieren können?
Das liegt daran, dass die Standardblockierungsstufe von IDEA beim Debuggen ALLE ist, wodurch andere Threads nur dann ausgeführt werden, wenn der aktuelle Debugging-Thread beendet ist. Sie können „Thread“ in „Haltepunkte anzeigen“ auswählen, wie in Abbildung 7.1 dargestellt, und dann auf „Als Standard festlegen“ klicken, um ihn als Standardoption festzulegen.
[Abbildung 7.1]
Um Threads zu wechseln, können Sie in der Dropdown-Liste der Frames in Abbildung 7.1 den aktuellen Thread wechseln, wie gezeigt Unten habe ich hier zwei Debug-Threads, wechsle zu einem anderen und gebe einen anderen Debug-Thread ein.
[Abbildung 7.1]
Beim Debuggen möchten Sie den Prozess durchlaufen noch einmal, ohne noch einmal eine Anfrage zu stellen?
1. Machen Sie sich zunächst mit dem Aufrufstapel dieser Methode vertraut, wie in Abbildung 8.1 dargestellt. Fordern Sie zunächst die Eingabe der Methode insertDemo von DemoController auf und rufen Sie dann die Methode insert auf . Die oberste Methode ist der aktuelle Haltepunkt.
[Abbildung 8.1]
2. Breakpoint-Rollback
Das sogenannte Breakpoint-Rollback ist eigentlich ein Rollback auf den vorherigen Anfang Nach einem Methodenaufruf kann der Test in IDEA nicht zeilenweise zurückspulen oder zum vorherigen Haltepunkt zurückkehren, sondern kehrt zur vorherigen Methode zurück.
Es gibt zwei Möglichkeiten zum Zurücksetzen. Eine davon ist die Schaltfläche „Drop Frame“ (Abbildung 8.2), die entsprechend der aufgerufenen Methode schrittweise ein Rollback durchführt, einschließlich anderer Methoden der Klassenbibliothek eines Drittanbieters (Alle anzeigen abbrechen). Mit der Schaltfläche „Frames“ wird die Klassenbibliotheksmethode eines Drittanbieters angezeigt (siehe Abbildung 8.3).
Die zweite Methode besteht darin, die Methode auszuwählen, die auf der Aufrufstapelmethode zurückgesetzt werden soll, mit der rechten Maustaste zu klicken und Drop Frame (Abbildung 8.4) auszuwählen, zum vorherigen Methodenaufruf der Methode zurückzukehren und dann zu drücken F9 (Programm fortsetzen) können Sie sehen, dass das Programm den Haltepunkt dieser Methode erreicht hat.
Eines ist jedoch zu beachten: Der Vorgang kann nur dann erneut durchgeführt werden, wenn sich der Status einiger Parameter/Daten geändert hat, z. B. bei Objekten und Sammlungen, aktualisierte Datenbankdaten usw.
Bild[8.2]
Bild[8.3]
Bild [8.4]
>
Möchten Sie die Anfrage während des Debuggens unterbrechen und den verbleibenden Prozess nicht durchlaufen?
Manchmal, nachdem wir festgestellt haben, dass die übergebenen Parameter falsch sind, möchten wir den nachfolgenden Prozess nicht durchlaufen. So unterbrechen Sie diese Anfrage (der nachfolgende Prozess löscht die Datenbankdaten ...). Müssen wir den Dienst schließen und das Programm neu starten? Nun, das habe ich schon einmal gemacht.
Um genau zu sein, habe ich keine Möglichkeit gefunden, die Anfrage direkt zu unterbrechen (außer den Dienst zu schließen), aber Sie können den nachfolgenden Vorgang durch Force Return, also erzwungene Rückkehr, vermeiden, wie in Abbildung gezeigt 9.1.
Klicken Sie auf „Rückgabe erzwingen“, und das Fenster „Rückgabewert“ wird angezeigt. Der Rückgabetyp meiner Methode ist „Map“, sodass ich die Ergebnisse hier direkt zurückgebe, um die Rückgabe zu erzwingen, sodass keine weiteren Schritte ausgeführt werden. Oder Sie können HashMap<>() neu erstellen.
[Bild 9.1]
[Bild 9.2]
Derzeit verwende ich JRebel als Hot-Deployment-Tool und der Effekt ist recht zufriedenstellend. Das Ändern von Java-Code oder XML und anderen Konfigurationsdateien kann im laufenden Betrieb aktualisiert werden. Gelegentlich, wenn der Dienst längere Zeit geöffnet war oder wenn viele Dateien geändert wurden, wird das Hot-Update nicht wirksam und der Dienst muss neu gestartet werden.
Hier ist nur eine kurze Beschreibung einer Möglichkeit, die ich im Internet gesehen habe, um kostenlose dauerhafte Nutzungsrechte zu erhalten (nicht geknackt). Ich bin mir nicht sicher, wann diese Methode nicht mehr verfügbar sein wird.
① Zuerst benötigen Sie ein Facebook- oder Twitter-Konto (Twitter ist am besten)
② Geben Sie diese Website ein: https://my.jrebel.com/ und melden Sie sich an, wie in Abbildung 10.1 gezeigt
③ Dann können Sie Ihren permanenten Aktivierungscode in Install and Acticate erhalten.
④ Legen Sie den Aktivierungscode in Jrebel in den Einstellungen fest, wie in Abbildung 10.3 gezeigt. Wenn das JRebel-Plug-in nicht installiert ist, suchen und installieren Sie zuerst das JRebel-Plug-in unter Plugins.
[Bild 10.1]
[Bild 10.2]
[Bild 10.3]
Das obige ist der detaillierte Inhalt vonGrafische Einführung in die Verwendung von Debug in Intellij IDEA. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!