Cloud Debugger in Cloud Code for IntelliJ 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 wie 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. Klicken Sie auf Ausführen > Konfigurationen bearbeiten.
  3. Klicken Sie oben links auf + Neue Konfiguration hinzufügen und wählen Sie dann Google Cloud Debugger aus der Drop-down-Liste aus.
  4. Geben Sie in das Feld Name einen Namen für die Konfiguration ein.
  5. Stellen Sie sicher, dass Sie Ihr Projekt im Feld Project (Projekt) ausgewählt haben.
  6. Klicken Sie auf OK.
  7. Klicken Sie zum Starten des Debuggers in der Symbolleiste auf Fehlerbehebungssymbol Fehlerbehebung.
  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 im linken Bundstegbereich auf die ausführbare Zeile, für die Sie einen Snapshot erstellen möchten, genau wie beim Festlegen eines Haltepunkts für eine lokale Anwendung mit dem regulären IDEA-Debugger.
  3. Wählen Sie im angezeigten Dialogfeld Haltepunkt festlegen die Option Cloud Snapshot-Speicherort aus. Im Bundsteg wird der Snapshot-Speicherort durch einen blauen Kreis gekennzeichnet und im Snapshot-Bereich von Debugger werden ausstehende Snapshots angezeigt.
  4. Wenn Sie die Snapshot-Position deaktivieren möchten, klicken Sie mit der rechten Maustaste auf den blauen Kreis und entfernen Sie das Häkchen aus dem Kästchen Aktiviert.
  5. Klicken Sie auf den blauen Kreis, um die Snapshot-Position zu entfernen.
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.

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, Beispiel: x !=0. Die Bedingung ist ein vollständiger boolescher Ausdruck, der logische und numerische Operatoren enthalten kann, zum Beispiel score < 0 || score > 500.

So legen Sie eine Snapshot-Bedingung fest:

  1. Klicken Sie mit der rechten Maustaste auf den Cloud Snapshot-Speicherort (blauer Kreis) im Bundsteg.
  2. Geben Sie im Feld Bedingung die Bedingung ein.

Ü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 kontaktieren

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.