CLion 2025.2 Help

核心转储调试

CLion 支持使用 核心转储 (macOS、Linux)和 小型转储 (Windows)文件进行事后调试。 这些文件是系统在程序崩溃或异常终止时捕获的进程内存副本。

由于唯一可用的数据是程序崩溃时的内存快照,因此无法 逐步执行程序,但您可以调查相应的源代码、帧和变量。 内存视图反汇编视图调试器控制台也可以使用。

配置核心转储调试会话

  1. 使用以下选项之一:

    1. 从主菜单中选择 运行 | 打开核心转储 ,或从 帮助 | 查找操作Ctrl+Shift+A )调用此操作。

      如果项目中没有 核心转储调试配置 ,将直接显示打开核心转储对话框。 否则,从弹出菜单中选择 新建核心转储

      打开核心转储对话框

      按照步骤 2 中的说明操作。

    2. 手动创建 核心转储调试 配置。 转到 运行 | 编辑配置 ,点击 ,并从模板列表中选择 核心转储调试

      核心转储调试配置
  2. 配置以下设置:

    • 调试器

      选择要使用的 debugger :捆绑的 LLDB、捆绑的 GDB、工具链的 GDB 或自定义的外部 GDB。

      默认调试器是捆绑的 LLDB(如果默认工具链配置为 LLDB),在所有其他情况下为捆绑的 GDB。

    • Core dump

      提供 core dump 文件的路径或使用文件选择器选择它。 确保文件具有读取权限。

    • 符号文件 (LLDB 可选,GDB 必需)

      符号文件是 CLion 正确识别程序符号并导航到正确源代码位置所必需的。 这可以是带有调试信息的程序二进制构建文件或单独的符号文件。

      请注意,链接库中没有调试信息的符号仅在相关调试符号位于默认搜索目录中时可用。

      LLDB 可以检测与所选核心转储对应的二进制文件。

      但是,如果您调查的崩溃发生在没有调试符号的二进制文件中,则需要明确提供这些符号给 LLDB。 为此,请指定未剥离版本的二进制文件或单独的符号文件的路径。

      对于 GDB,您必须手动指定未剥离的二进制文件或单独的符号文件。

    • 系统根目录

      如果您正在调试来自另一个系统的二进制构建的核心转储,并且库位于非默认位置,请指定 sysroot 路径。

    • 路径映射

      如果二进制文件是在另一台机器上构建的,并且文件/目录名称或路径不同,请使用此窗格设置路径映射。

启动核心转储会话

  • 对于 打开核心转储 操作,CLion 会创建相应的配置并自动启动它。

    如果在项目中已有配置时调用 打开核心转储 ,它将打开配置列表,并提供创建新配置的选项:

    打开核心转储弹出窗口
  • 如果您手动创建了 核心转储调试 配置,请在切换器中选择它并按 Shift+F9)。

核心转储调试过程

当您启动核心转储调试会话时,CLion 会自动打开相应的源代码和 调试工具窗口。 与常规调试会话类似,您可以使用 Frames 选项卡和 Variables 面板,以及 内存反汇编视图。 调试器控制台也可用于运行调试器命令。

核心转储调试

当前问题和限制

  • 远程核心转储调试目前正在开发中(CPP-22656CPP-24333)。

  • 在 macOS 上,捆绑的 GDB 可能会因 No core file handler recognizes format错误而无法启动,这是 GDB 在 macOS 上的 已知问题

  • 求值表达式功能可能会受到限制。

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