在CLion中,您可以打开反汇编的代码:

  • 当源代码可用时,可以根据需要为任何帧打开。
  • 当源代码不可用时,可以通过强制步入来进行。

为帧打开反汇编视图

  1. 在调试工具窗口中右键单击所需的帧,然后选择“反汇编”:
    1.png
  2. 反汇编视图将会与源代码并排打开:
    2.png

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

下面描述的所有调试操作都适用于这个并排视图,但CLion目前不会在源文件和反汇编视图之间同步断点。

当源不可用时打开反汇编视图

  • 调试代码时,使用“强制步入” 强制步入图标 AltShiftF7 命令,而不是“步入” F7。对于没有源代码的函数,“步入”操作类似于“步过”。

    • 在调试期间,如果CLion无法定位源文件,它会自动打开反汇编视图。这可能会在以下情况下发生,例如,当您使用伪CMake项目调试自定义可执行文件时,或者在没有源代码的情况下构建了一个库。
    • 若要明确指定源文件,请单击通知中的“选择文件”:
      3.png
  • 在调试工具窗口中导航到所需的帧。
  • 当启动不提供调试信息的附加进程的调试会话时,反汇编也会自动打开。

在反汇编中逐步执行

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

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

_4.png

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

5.png

反汇编中的断点

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

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

6.png

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

7.png

当停止调试会话时,地址断点会自动删除,因为大多数情况下,下次启动时地址布局会发生变化。这与监视点类似。

转到地址

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

如果需要包括寄存器到表达式中,请以$开头(GDB表示法)。

8.png

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

汇编文件的语法高亮

AT&T汇编代码支持语法高亮显示。

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

  1. 转到设置 | 编辑器 | 文件类型。
  2. 在识别的文件类型列表中选择汇编语言,并添加新的扩展名到列表中。

标签: clion破解, clion破解教程, clion教程, clion基础教程, clion高级教程, clion核心教程, clion免费激活码, clion免费注册码, clion注册码在线生成, clion激活