IntelliJ IDEA 2025.1 Help

调试 Kotlin 协程

虽然协同程序特别适合异步编程,但由于异步流程带来的挑战,仍然有出错的可能,而且这些错误可能很难查明。

在调试 Kotlin 代码时,IntelliJ IDEA 允许您暂停执行并诊断协程中的代码可能存在的问题。 即使协程此刻没有运行,调试信息也可用。

协程调试器为您提供以下信息:

  • 按 dispatcher 分组的协程及其状态列表。 要获取列表,请转到 协程 选项卡。 顶级节点是 dispatchers,其次是 go coroutines。 对于每个 coroutine,您可以获取其当前状态(创建运行中暂停 )及其线程的状态。

    Coroutines 选项卡中的協程列表
  • 协程上下文:在某个执行点协程中可用的局部变量和字段的值。 调试协程时,您可以使用 变量 选项卡的所有标准功能。 有关使用 变量 选项卡的更多信息,请参阅 检查/更新变量 主题。

    协程的 Variables 选项卡
  • 协程创建堆栈和协程内的调用堆栈。

    协程创建栈

    如果您对 Kotlin 类中的调用不感兴趣,可以通过点击 在库中隐藏帧 隐藏它们,此选项位于 选项卡的右上角。

    隐藏 Kotlin 类中的调用

获取协程转储

如果您需要获取包含每个 coroutine 状态及其堆栈的报告,请使用 coroutine dump 选项。 这在您需要以文本格式共享有关 coroutines 的信息时很有用。

  1. 协程 选项卡中的任意位置右键点击并选择 获取协程转储

    获取协程转储
  2. 会打开一个包含转储文件的选项卡,您可以选择要导出的内容:

    • 如果您想复制与特定 coroutine 相关的信息,请选择它并点击 复制到剪贴板

    • 要导出所有协程的转储,点击 导出到文本文件 ,然后点击 复制 (将转储复制到剪贴板),或指定文件并点击 保存

最后修改日期: 2025年 4月 24日