这绝对是一种痴迷,但我对编译器如何巧妙地将C代码转换为机器指令感到着迷。由于我对某些指令有点模糊,如果我可以在单个机器指令的级别上观察编译程序的操作 - “低于”C语句的级别(可能生成多个CPU指令),将会很有帮助。换句话说,我可以在一次机器指令后观察寄存器/存储器的变化吗?
我确信它可以与其他一些调试器一起使用,但我只使用Xcode。
答案 0 :(得分:8)
可以使用Xcode的步骤,步入和使用调试器逐步执行命令。诀窍是按住 ctrl (控制)键,同时将鼠标悬停在调试器步骤图标上以更改上下文。在每个步骤图标下方,该行将变为一个点,然后您可以在指令级别进行操作。
请参阅附带的红色椭圆形突出显示的截图。
答案 1 :(得分:3)
si
是“步骤说明”,ni
是“下一步说明”。对于代码行,它们具有与“step”和“next”相同的语义,仅在指令级别上。
答案 2 :(得分:2)
在Debugger窗口中,启用程序集:Run / Debugger display / Source and disassembly。等到你遇到断点。然后使用Run / Step into(over)指令进入程序集。
答案 3 :(得分:0)
哎呀,没有仔细检查 - 步入w / Option(Cmd-Opt-Shft-I =⌘⌥⇧I)