Cloud Debugger verwenden

Cloud Debugger erfasst und überprüft den Aufrufstack und lokale Variablen von in der Cloud ausgeführten Live-Anwendungen, ohne die Anwendung zu beenden oder zu verlangsamen. Debugger unterstützt Google Cloud-Produkte wie App Engine, Compute Engine, GKE und Cloud Run.

Der Debugger entspricht dem Standard-Debugger Ihrer IDE und bietet die gleiche Benutzeroberfläche. Es gibt jedoch folgende wichtige Unterschiede:

  • Die Ausführung der ausgeführten Anwendung wird vom Debugger nicht angehalten.
  • Sie können in Debugger keine Anwendung ausführen.

Weitere Informationen zu den von Debugger unterstützten Plattformen finden Sie unter Debugger einrichten.

Voraussetzungen

Zum Ausführen von Debugger benötigen Sie Folgendes:

Debugger nutzen

So verwenden Sie den Debugger:

  1. Öffnen Sie Ihr Projekt in IntelliJ.
  2. Wählen Sie Run > Edit Configurations aus.
  3. Klicken Sie auf das Pluszeichen (+) links oben und wählen Sie Cloud Debugger aus der Drop-down-Liste aus.
  4. Geben Sie einen Namen für Ihre Konfiguration im Feld Name ein.
  5. Stellen Sie sicher, dass Sie Ihr Projekt im Feld Project (Projekt) ausgewählt haben.
  6. Klicken Sie auf OK.
  7. Zum Starten des Debuggers klicken Sie in der Symbolleiste auf das grüne Symbol für Fehlerbehebung Fehlerbehebungssymbol.
  8. Wählen Sie im Dialogfeld An eine Anwendung anhängen das Back-End-Modul aus, das Sie debuggen möchten, und klicken Sie dann auf Anhängen.

Snapshot-Speicherort festlegen

Ein Snapshot erfasst die lokalen Variablen und den Aufrufstapel an der angegebenen Position in Ihrem Quellcode. Die Snapshot-Position gilt für alle ausgeführten Instanzen Ihrer Anwendung.

So legen Sie eine Snapshot-Position fest:

  1. Nachdem Sie Debugger an eine laufende Anwendung angehängt haben, wechseln Sie zu der Datei, die den Quellcode enthält, den Sie sich ansehen möchten.
  2. Klicken Sie im linken Butterbereich auf die ausführbaren Zeilen, für die Sie einen Snapshot erstellen möchten, so wie Sie es beim Festlegen eines Linienpunkts für eine lokale Anwendung mit dem regulären IDEA-Debugger tun würden.

    Im Grill wird ein blauer Kreis angezeigt, um den Snapshot-Speicherort anzuzeigen, und im Debugger-Snapshot werden ausstehende Snapshots angezeigt.

  3. Klicken Sie zum Entfernen der Snapshot-Position auf den blauen Kreis.

Im folgenden Beispiel ist die Snapshot-Position in dieser Zeile festgelegt: if (userAgent != null) {.

Grafik: Ort des Snapshots festlegen

Snapshot abrufen

Wenn eine Instanz den Code an der festgelegten Snapshot-Position zum ersten Mal ausführt, erfasst der Debugger einen Snapshot und stellt ihn zur Ansicht bereit. Sie können den Snapshot dann analysieren und mithilfe der Daten Fehler in der Anwendung beheben.

Das Label auf dem Snapshot im Debugger-Snapshot ändert sich von Ausstehend zu dem Zeitpunkt, zu dem Debugger den Snapshot erfasst hat.

Stacktrace ansehen

Erweiterte Konzepte

Snapshot-Bedingung erstellen

Eine Snapshot-Bedingung ist ein boolescher Ausdruck, der den Debugger anweist, nur dann einen Snapshot aufzunehmen, wenn das Ergebnis "wahr" ist, z. B. x !=0. Die Bedingung ist ein vollständiger boolescher Ausdruck, der logische und numerische Operatoren enthalten kann, zum Beispiel score < 0 || score > 500.

Überwachungsausdrücke

Manchmal sind die Informationen, die Sie zum Beheben eines Problems benötigen, nicht sofort in den lokalen Variablen und Feldern der Anwendung sichtbar. Insbesondere beim Ausführen in App Engine verhindert der Security Manager eine zu intensive Überprüfung der privaten Mitglieder von Systemklassen wie java.util.Hashmap. In solchen Fällen dient ein Watch-Ausdruck als effektive temporäre lokale Variable, um zusätzliche Informationen freizugeben. Watch-Ausdrücke können komplexe Ausdrücke auswerten und Objekthierarchien durchsuchen, nachdem ein Snapshot aufgenommen wurde.

Sie können einen Watch-Ausdruck angeben, nachdem Sie die Snapshot-Position festgelegt haben. Watch-Ausdrücke unterstützen die gleichen Sprachfunktionen wie die Snapshot-Bedingungen, die im Abschnitt Snapshot-Bedingung festlegen beschrieben werden.

Support

Wenn Sie uns Feedback geben möchten, können Sie ein Problem auf GitHub melden oder eine Frage auf Stack Overflow stellen.