使用 Cloud Debugger

Cloud Debugger 可以捕获和检查在云端运行的实时应用的调用堆栈和局部变量,既不需要停止应用,也不会导致应用变慢。Debugger 支持 Google Cloud 产品,包括 App EngineCompute EngineGKECloud Run

Debugger 与 IDE 的标准调试程序非常相似,并提供相同的界面,但存在以下主要差异:

  • Debugger 不会暂停执行正在运行的应用。
  • 您无法在 Debugger 中逐步执行应用。

如需详细了解 Debugger 支持的平台,请参阅设置 Debugger

要求

如需运行 Debugger,您需要以下各项:

使用 Debugger

如需使用 Debugger,请执行以下操作:

  1. 在 IntelliJ 中打开您的项目。
  2. 选择 Run > Edit Configurations
  3. 点击左上角的加号图标 (+),然后从下拉列表中选择 Cloud Debugger
  4. 名称字段中输入配置的名称。
  5. 确保在项目字段中选中您的项目。
  6. 点击确定
  7. 如需启动调试程序,请点击工具栏中的绿色 bug 调试 “调试”图标 图标。
  8. 附加到应用 (Attach to an Application) 对话框中,选择要调试的后端模块,然后点击附加

设置快照位置

快照可捕获源代码中指定位置的局部变量和调用堆栈。此快照位置适用于所有正在运行的应用实例。

要设置快照位置,请执行以下操作:

  1. 将 Debugger 关联至正在运行的应用后,导航到包含要监控的源代码的文件。
  2. 点击要在左侧间距区域中拍摄快照的可执行行,方法与使用常规 IDEA 调试程序为本地应用设置行断点一样。

    间距中会出现蓝色圆圈以标记快照位置,“Debugger Snapshots”窗格会显示待处理的快照。

  3. 如需移除快照位置,请点击蓝色圆圈。

在以下示例中,快照位置在 if (userAgent != null) { 行上设置。

设置快照位置

获取快照

当任意实例首次在您设置的快照位置执行代码时,调试程序会截取快照并提供查看选项。然后,您可以检查此快照并使用数据调试应用。

在“Debugger Snapshots”窗格中,此快照上的标签从 Pending 更改为调试程序捕获该快照的时间。

查看堆栈轨迹

高级概念

设置快照条件

快照条件是一个布尔表达式,用于告知调试器仅在计算结果为 true 时才截取快照,例如 x !=0。该条件是一个完整的布尔表达式,可以包含逻辑和数字运算符,例如 score < 0 || score > 500

监视表达式

有时,调试问题所需的信息不会立即在应用的本地变量和字段中显现出来。特别是,在 App Engine 上运行应用时,Security Manager 会阻止您过于深入地探究系统类的私有成员,例如 java.util.Hashmap。在这种情况下,监视表达式可作为有效的临时本地变量来公开其他信息。监视表达式可以在截取快照时评估复杂表达式并遍历对象层次结构。

您可以在设置快照位置后指定监视表达式。 监视表达式支持与设置快照条件部分中所述的快照条件相同的语言功能。

获取支持

如需在 IntelliJ IDE 中提交反馈或报告问题,请转到工具 > Cloud Code > 帮助 / 简介 > 提交反馈或报告问题以报告 GitHub 问题或询问 Stack Overflow 问题。

您还可以加入属于 Google Cloud Slack 社区#cloud-code 频道。