使用 Stackdriver Debugger

Stackdriver Debugger 可擷取及檢查在雲端 (具體而言是在 App EngineCompute Engine 執行的運作中應用程式的呼叫堆疊和本機變數,而不需要停止應用程式或減慢其速度。

其使用方式與 IDE 的標準偵錯工具非常類似,且提供相同的使用者介面,只有以下兩項主要差異:

  • Stackdriver Debugger 不會將執行中的應用程式暫停。
  • 您無法在 Stackdriver Debugger 中逐步執行應用程式。

在 App Engine 上,Stackdriver Debugger 只會在 Java 與 Kotlin 應用程式中執行並自動啟用。在 Compute Engine 上,您必須執行 Bootstrap 指令碼才能啟用本功能。

需求條件

您必須具備下列項目才能執行 Stackdriver Debugger:

使用 Stackdriver Debugger

如何使用 Stackdriver Debugger:

  1. 在 IntelliJ 中開啟您的專案。
  2. 依序選擇 [Run] > [Edit Configurations]
  3. 按一下左上方的加號 ([+]),然後選取下拉式清單中的 [Google Stackdriver Debug]
  4. 在 [Name] 欄位中,輸入設定名稱。
  5. 確認已在 [Project] 欄位中選取您的專案。
  6. 按一下 [OK]
  7. 在工具列中,按一下綠色的錯誤「偵錯」圖示以啟動偵錯工具。
  8. 在「Attach to an Application」對話方塊中,選取您要進行偵錯的後端模組,然後按一下 [Attach]

設定快照位置

快照會依照您在原始碼中指定的位置,擷取本機變數和呼叫堆疊。快照位置會套用到應用程式的所有執行中執行個體。

如何設定快照位置:

  1. 將 Stackdriver Debugger 附加至執行中的應用程式之後,移至包含您要監控的程式碼的檔案。
  2. 在左側的溝槽部分,按一下您要設定快照的可執行指令行,就像使用一般 IDEA 偵錯工具設定本機應用程式的指令行中斷點時採取的做法一樣。

    溝槽部分中會顯示藍色圓圈以標示快照位置,且「Stackdriver Debugger Snapshots」窗格會顯示待處理的快照。

  3. 按一下藍色圓圈以移除快照位置。

在下列範例中,快照位置是設定在 if (userAgent != null) { 指令行。

設定快照位置

取得快照

任何執行個體首次在您設定的快照位置執行程式碼時,偵錯工具都會拍攝快照,並將快照設為可供查看。接著,您可以檢查快照並使用相關資料來對應用程式進行偵錯。

「Stackdriver Debugger Snapshots」窗格中的快照標籤會從「Pending」變更為 Stackdriver 擷取快照的時間。

查看堆疊追蹤

進階概念

設定快照條件

快照條件是一種布林值運算式,可告知偵錯工具只在得出的值為 True 時拍攝快照,例如,x !=0。快照條件為完整的布林值運算式,可包含邏輯與數字運算元,例如 score < 0 || score > 500

監控運算式

進行偵錯時,有時候您需要的資訊不會立即出現在應用程式的本機變數和欄位中。尤其是在 App Engine 上執行時,Security Manager 會禁止您過度深入探索系統類別的不公開成員,例如 java.util.Hashmap。在這類情況下,監控運算式可做為有效的臨時本機變數,以顯示額外的資訊。如果拍攝了快照,監控運算式就能評估複雜的運算式及周遊物件階層。

設定好快照位置之後,您就能指定監控運算式。如上所述,監控運算式支援與快照條件相同的語言功能。

瞭解詳情

如要深入瞭解如何在 IntelliJ IDEA 中執行 Stackdriver Debugger 功能,請參閱 IntelliJ IDEA Google Cloud Debugger 教學課程

後續步驟

  • 前往 GitHub 探索外掛程式的程式碼或回報問題,或在 Stack Overflow 上提出問題。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Tools for IntelliJ
需要協助嗎?請前往我們的支援網頁