Neben dem Schreiben von Code verbringen Programmierer viel Zeit damit, Code zu debuggen. Es wird sogar gesagt, dass es entweder den Code debuggen oder den Code debuggen. :)
Heute werden wir über einige Tipps zum Debugging -Code und über einige Möglichkeiten sprechen, um Probleme schnell zu finden, wenn die von der IDE bereitgestellte Debugger verwendet wird.
Freunde, die das sehen, betrachten mich nicht sofort als Titelparty. Schauen wir uns an. Wenn Sie einige bessere Fähigkeiten haben, hinterlassen Sie bitte eine Nachricht.
Kommen wir zum Thema.
1 Multi-Thread-Debugging
Freunde, die zu viele Fadenanwendungen entwickelt haben, sollten ein Verständnis haben. Um die verschiedenen Variablenzustände zwischen mehreren Threads sowie den Erwerb von Schlösser zu beobachten, werden sie sich manchmal vorstellen, einen Haltepunkt für den Debuggen des Codes hinzuzufügen.
Wenn der Haltepunkt in der IDE stoppt, können Sie zu einem anderen Thread wechseln und andere Codes ausführen, ohne sich gegenseitig zu beeinflussen. Natürlich gibt es hier einen Schalter, der standardmäßig in Sonnenfinsternis eingeschaltet wird.
Es ist jedoch in der Intellij -Idee standardmäßig nicht aktiviert. Das heißt, wenn Sie einen Haltepunkt in den Code in Idee hinzufügen, obwohl ein Thread zusammenbricht, haben die anderen Threads ihn bereits ausgeführt.
Nachdem die Aussetzung des Threads auf den Eclipse-Modus festgelegt wurde, kann auch das Debuggen von Multi-Thread-Anwendungen gestartet werden.
Einfache Einstellungen können direkt am Haltepunkt stehen und die Suspendierung in den Thread ändern
Ändern Sie die Standardeinstellungen in der Idee: Wechseln Sie zum Optionsfeld "Thread". Klicken Sie auf die angezeigte Schaltfläche "Standard machen".
Nachdem ein Faden unterbrochen ist, können Sie durch das Thread -Fenster wechseln und in anderen Threads weiter ausgeführt werden.
Wechseln Sie hier in der Intellij -Idee hier
Wir sehen, dass sowohl Hauptfaden- als auch Pool-1-Thread-1 im Laufstatus sind und sich die Wechsel zu beiden weiterleiten kann.
Zu diesem Zeitpunkt können Sie eine Multi-Thread-Anwendung schreiben und Inhalte in nicht-thread-sicheren Containern wie ArryList speichern und dann beobachten, warum sie Thread-Unsafe sind und welche Probleme auftreten werden, die lebendig und lebendig sind.
PS: Lassen Sie mich Ihnen hier sagen. Deshalb wird empfohlen, beim Erstellen eines Threads einen aussagekräftigen Namen anzugeben, zumindest einen erkennbaren Namen. Andernfalls können Sie nicht unterscheiden, welcher Thread Ihr eigener ist, und es ist problematisch zu wechseln.
2 Back-Execution
Die hier erwähnte Rückwärtsausführung ist, dass manchmal, wenn wir den Code debuggen, jede Methode faul ist und schrittweise Debugging eingeht. Wenn Sie die Änderung eines variablen Wertes beobachten, verfolgt eine bestimmte Methode nicht und die Wertänderung, und Sie müssen es erneut tun.
Wenn Sie sich auf die Funktion der Rückwärtsdurchführung verlassen, können Sie sich rückwärts, genau wie die Funktion des Schaches beim Schachspiel, zurückgefordert. Natürlich wurde der Name dieser Back -Operation von mir genannt und wird in der IDE als Tropfenrahmen bezeichnet.
Nach dieser Funktion wird nach dem Abschluss des aktuellen Rahmens der geänderte variable Wert nicht wiederhergestellt. Wenn Sie beispielsweise eine Liste in die aktuell bezeichnete Methode übergeben und Inhalte in die Liste in der Methode hinzufügen, kehrt die Liste nicht in den vorherigen Zustand zurück.
Wenn die Methode jedoch erneut aufgerufen wird, können Sie beobachten, wann die Liste geändert wird, zumindest müssen Sie das Programm nicht wieder ausführen. Sie können sich sogar zurückziehen, wenn Sie nicht einverstanden sind.
3 Bedingte Haltepunkte
Um den Code zu debuggen, müssen Sie Haltepunkte hinzufügen, an denen Sie Änderungen beobachten möchten, und sie dann Schritt für Schritt sorgfältig ausführen.
Wenn es sich jedoch in einer Schleife befindet oder die Methode gleichzeitig von mehreren Threads aufgerufen wird, treten Sie sorgfältig nach unten und stellen fest, dass Sie keine Inhalte haben, und Sie werden ab Beginn der Schleife heruntergefallen. Wenn Sie jedoch noch keinen Inhalt haben, werden Sie sich verärgert.
Tatsächlich können wir beim Hinzufügen eines Haltepunkts dem Haltepunkt bestimmte Bedingungen hinzufügen, so dass der Haltepunkt nur dann wirksam wird, wenn die angegebenen Bedingungen erfüllt sind.
In der Intellij-Idee klicken Sie mit der rechten Maustaste auf den Haltepunkt, und das Bedingungsfeld in der folgenden Abbildung wird einfach die angegebenen Bedingungen eingeben.
Mit bedingten Haltepunkten können nicht verwandte und uninteressierte Codes direkt übersprungen werden.
4 Fragmentcode
Ich habe nicht darüber nachgedacht, welchen Namen ich ausdrücken sollte. Manchmal möchte ich während des Debugging -Prozesses plötzlich einen Code unterhalten, der sich darauf bezieht, aber nicht in der Quelldatei, um sie zu beobachten, um die Problemanalyse zu unterstützen. An diesem Punkt werden Sie das Programm stoppen, den Code hinzufügen und erneut ausführen?
Es gibt eine Funktion in der Idee, um Code -Snippets auszuführen, mit denen der Code, den Sie vorübergehend im Kontext des aktuellen Codes schreiben, ausführen können.
Beispielsweise übergibt die aktuelle Methode in einer Liste, dieser Methode fehlt jedoch ein Element, das Sie unter den nachfolgenden Bedingungen verwenden müssen. Zu diesem Zeitpunkt können Sie die Funktion der Fragmentcodeausführung vorübergehend verwenden und eine in einfügen.
Beachten Sie, dass in der Intellij -Idee der Knopf oben wie ein kleiner Taschenrechner eine vorübergehende Funktion ist. Nach dem Klicken wird das Feld des Ausdrucks (Strg+F8) unterhalb der Schaltfläche angezeigt. Geben Sie den Code ein und klicken Sie in der unteren rechten Ecke. Der Rückgabewert wird im Ergebnis angezeigt.
Dies entspricht der vorübergehenden Änderung des Inhalts der Variablen vorübergehend.
Anschließend können Sie auch die Methoden des Objekts aufrufen, Funktionen ausführen, Attributwerte erhalten usw.
5 Variablenänderungswert anzeigen Wert
Jede IDE bietet ein Fenster, um den aktuellen Wert des Kontextvariablens beim Debuggen des Codes zu beobachten. In der Tat können neben der Anzeige auch einige nicht-finale Grundtypen hier direkt geändert werden. Auf diese Weise kann der erwartete Wert jedes Mal wiederhergestellt werden, wenn mehrere Schleifen ausgeführt werden, und es müssen nicht das Programm neu gestartet werden.
Häufig verwendete Codes vervollständigen automatisch Verknüpfungsschlüssel
| Kurzschlussschlüssel | veranschaulichen |
|---|---|
| Sout | System.out.println (""); |
| PSVM | Hauptmethode |
Gemeinsame Einstellungen
Häufig verwendete Abkürzungsschlüssel
| Kurzschlussschlüssel | veranschaulichen |
|---|---|
| Alt + Strg + s | Einstellungen geöffnet |
| Alt + Strg + Shift + s | Open Project Structrue |
| ALT + ENTER | Schnelle Lösung |
| Alt + / / | Automatische Wortvervollständigung |
| Alt + Einfügung | Code automatisch generiert, z. B. Setter, Getter, Tastring usw. |
| ALT + Shift + V | Verschieben Sie Mitglieder der Klasse in eine andere Klasse |
| Strg + Verschiebung + f | Formatcode |
| Strg + Verschiebung + U. | Fallschaltung |
| Strg + Verschiebung + i | Zeigen Sie die Code -Definitionen gemäß dem aktuellen Kontext an, zum Beispiel: Wenn der Cursor die Methode stoppt, wird die Definition der Methode auf Popupview -Weise angezeigt. |
| Strg + Klick | Zum Quellcode springen |
| Verschiebung + Verschiebung | Suchen Sie alle Dateien |
| Strg + e | Öffnen Sie die Liste der aktuellen Zugriffsdateien |
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.