IntelliJ IDEA 2025.2 Help

分析外部堆栈跟踪

您可能需要分析他人收到的异常,以调查问题,例如死锁或无响应的用户界面。

使用 IntelliJ IDEA,您可以解码并查看异常堆栈跟踪或 完整线程转储。 在查看期间,您可以使用它们导航到源代码,就像它们来自 运行调试 工具窗口一样。

安装 ZKM-Unscramble 插件

此功能依赖于 ZKM-Unscramble插件,您需要安装并启用。

  1. Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 Marketplace 选项卡,找到 ZKM-Unscramble 插件,然后点击 安装 (如果提示,请重新启动 IDE)。

  1. 在主菜单中,前往 代码 | 分析堆栈跟踪或线程转储

  2. 分析堆栈跟踪 对话框中打开后,将外部堆栈跟踪或线程转储粘贴到 请在此处放置堆栈跟踪或完整的线程转储: 文本区域中。

  3. 请指定是否需要解码堆栈跟踪。

    要做到这一点,请选择 译码堆栈跟踪(U) 复选框,选择所需的 unscrambler 和日志文件。

  4. 如果堆栈跟踪文本在使用某些软件处理(例如,错误跟踪器或邮件客户端)后损坏(行被截断或换行,或太长等),请点击 标准化(N)

  5. 如果您想显式指定包含相应 dSYM 文件的目录,请选择 使用附加目录搜索丢失的 dSYMs 复选框并在字段中输入所需的目录或从文件系统中选择。

  6. 点击 OK。 堆栈跟踪显示在 运行工具窗口中。

    要跳转到导致问题的代码,请滚动到所需的堆栈跟踪行并点击源文件的链接。 文件在编辑器中打开。

    在 Run 工具窗口中显示的线程转储

线程名称旁边的图标表示线程的状态:

图标

描述

运行/活跃 — 默认状态,线程正在主动执行代码。

(用于 Kotlin 协程)运行 — 协程正在主动执行代码。

休眠 — 发生在线程处于 Thread.sleep 状态时,或在其处于停顿或等待条件时。

承载线程 — 当前执行虚拟线程的平台线程,或处于 已创建/未知 状态的协程。

等待 — 线程正在等待对象监视器,或协程已挂起时发生。

套接字 — 线程正在执行网络 I/O 操作时发生。

I/O — 线程正在执行非网络 I/O 操作时发生。

EDT(事件分发线程)— Swing 应用中的 UI 线程。 表示空闲的 EDT, 表示活跃的。

运行 工具窗口中的某些调用具有虚线下划线。 这些调用发生在 try 块中,并可能抛出已检查异常。

Try Blocks Highlighting 功能会突出显示 Run 工具窗口中的调用

"分析堆栈跟踪对话框"

使用此对话框可获取外部应用程序的可导航控制台堆栈跟踪。 从此堆栈跟踪中的每条消息,您都可以直接导航到导致报告问题的源代码。

条目

描述

译码堆栈跟踪(U)

如您的源代码已被加扰,请选择此复选框来解扰外部堆栈跟踪。

译码器(S)

在这里,您可以选择解码工具。

IntelliJ IDEA 自带 Zelix Klass Master 解码插件。 您可以开发自己的插件,以破解由任何其他混淆器处理的代码的堆栈跟踪。

日志文件: (L)

请指定解码器日志文件的位置。

将一个堆栈跟踪或完整的线程转储放在此处

请在此处粘贴外部堆栈跟踪或线程转储。

自动检测并分析复制到 IntelliJ IDEA 外部剪贴板的线程转储

如果选中此复选框,IntelliJ IDEA 将监控和分析剪贴板的内容。 您只能选中此复选框一次,每次切换到 IntelliJ IDEA 时,您的剪贴板将被扫描。

一旦类似堆栈跟踪的内容被复制到剪贴板,IntelliJ IDEA 会在相应的工具窗口中显示此堆栈跟踪。

突出显示最近 <this_many> 天内更改的文件

选中此复选框以指定您想检查堆栈跟踪中最新更改的时间段。 默认时间周期设置为 31 天。

标准化(N)

如果堆栈跟踪文本在使用某些软件(例如,bug 跟踪器或邮件客户端)处理后被损坏(行被截断或换行,或太长等),请点击此按钮以恢复正常的堆栈跟踪结构。

最后修改日期: 2025年 9月 22日