调试反汇编代码

2026-07-04 18:33:24 公会联盟

调试反汇编代码在调试会话期间,您可以打开反汇编代码

在源代码可用时按需为任意帧打开,

在源代码不可用时通过强制单步执行打开。

您还可以在不启动调试会话的情况下, 查看 C/C++ 文件的汇编代码。

为帧打开反汇编视图右键点击 调试工具窗口 中所需的帧,然后选择 反汇编:

反汇编视图将与源代码并排打开:

一旦打开,反汇编视图会与当前选定的帧保持同步。 当切换帧时,编辑器和反汇编视图都会滚动到执行点。

以下描述的所有调试操作都可以在此并排视图中使用,但目前 CLion 不会在源文件和反汇编视图之间镜像断点。

在源代码不可用时打开反汇编视图在调试代码时,请使用 强制单步进入 Alt+Shift+F7 命令,而不是 单步进入 F7。 单步进入 对于没有源代码的函数,其行为类似于 单步跳过。

当 CLion 在调试期间无法找到源文件时,反汇编视图会自动打开。 例如,当您 使用虚拟 CMake 项目调试自定义可执行文件或项目中没有源代码的 CI 构建库时,就会发生这种情况。

要明确指定源代码,请点击通知中的 选择文件:

在 调试工具窗口中导航到所需的 帧。

当您为不提供调试信息的 附加进程启动调试会话时,反汇编也会自动打开。

在反汇编中逐步执行在反汇编视图中,您可以使用常规的 单步操作来调查代码。

在反汇编和原始源代码中的单步操作行为不同:尽管调试器始终逐行单步执行,但源代码中的一行通常包含多条指令,而反汇编中的一行始终对应一条指令。

您还可以使用 设置执行点操作跳转到反汇编中的任意代码行:

在反汇编中设置断点您可以像在源代码中一样,在反汇编中设置 断点。 这些断点称为 地址断点。

右键点击断点以查看可用选项:

点击 更多 或按 Ctrl+Shift+F8 在 断点 对话框中编辑地址断点:

当您停止调试会话时,地址断点会自动删除,因为大多数情况下地址布局会在下次启动时更改。 此行为类似于 监视点。

转到地址使用 转到 字段跳转到所需的代码行。 在此字段中,您可以输入一个地址或任何可以计算为地址的表达式。

如果需要在表达式中包含寄存器,请以 $ 开头其名称(GDB 表示法)。

在使用 LLDB 调试时,在 转到 字段中使用寄存器需要显式转换为地址。 例如, (void *)($pc + 0x8)。

在反汇编中使用 x86 语法使用 菜单切换到 x86 汇编(Intel)语法:

此选项也可在 文件的汇编视图 中使用。 这些配置是独立的:反汇编视图配置不会影响汇编视图,反之亦然。

使用 Intel 语法 选项在 ARM 架构和 MSVC工具链中不可用。

汇编文件中的语法高亮语法高亮适用于 AT&T 汇编代码。

默认情况下, .s 和 .asm 文件会被识别为汇编代码文件,但您可以配置其他类型:

转到 设置 | 编辑器 | 文件类型。

在已识别的文件类型列表中选择 汇编语言 ,并 添加新扩展名到列表中。

2026年 3月 24日文件的汇编视图寄存器视图