Cloud Debugger verwenden

Cloud Debugger kann den Aufrufstack und lokale Variablen einer in der Cloud ausgeführten Liveanwendung erfassen und prüfen, ohne die Anwendung anzuhalten oder zu verlangsamen. Debugger unterstützt Google Cloud-Produkte, einschließlich App Engine, Compute Engine, GKE und Cloud Run.

Debugger funktioniert ähnlich wie der Standard-Debugger Ihrer IDE und hat die gleiche Benutzeroberfläche, mit den folgenden wichtigen Unterschieden:

  • Debugger unterbricht das Ausführen der laufenden Anwendung nicht.
  • Sie können eine Anwendung nicht in Debugger durchlaufen.

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 links oben auf das Pluszeichen (+) und wählen Sie anschließend aus der Drop-down-Liste Cloud Debugger 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. Klicken Sie auf das grüne Debug-Symbol Fehlerbehebungssymbol, um den Debugger zu starten.
  8. Wählen Sie im Dialogfeld Attach to an Application das Back-End-Modul zur Fehlerbehebung aus und klicken Sie anschließend auf Attach.

Snapshot-Position 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. Gehen Sie zur Datei mit dem zu überwachenden Quellcode, nachdem Sie Debugger einer laufenden Anwendung hinzugefügt haben.
  2. Klicken Sie in den linken Bundstegbereich der ausführbaren Zeilen, für die Sie einen Snapshot erstellen möchten, so als würden Sie einen Zeilenhaltepunkt für eine lokale Anwendung mit dem regulären IDEA-Debugger festlegen.

    Im Bundsteg wird die Snapshot-Position durch einen blauen Kreis markiert und im Snapshots-Bereich von Debugger werden ausstehende Snapshots angezeigt.

  3. Klicken Sie auf den blauen Kreis, um die Snapshot-Position zu entfernen.

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.

Für den Snapshot wird im Snapshot-Bereich von Debugger jetzt statt Ausstehend der Zeitpunkt angezeigt, an dem Stackdriver 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 ist die Information zur Fehlerbehebung 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

So senden Sie Feedback oder melden ein Problem in Ihrer IntelliJ-IDE: Tools > Cloud Code > Hilfe / Info > Feedback geben oder Problem melden, um ein Problem auf GitHub zu melden oder stellen Sie eine Frage zu Stack Overflow.

Sie können auch dem Kanal #cloud-code beitreten, der Teil der Google Cloud-Slack-Community ist.