-2

我正在使用调试器随时暂停程序的执行并查看正在运行的代码的状态,因此我在运行可执行文件之前设置了断点,以便可以在已知点停止并查看源代码中的变量值.

设置断点并检查跨步

在我查看我的代码后,它来到了一个新屏幕。这里我按下“跳过”按钮意味着它来查看下一行,如果我按下“继续程序执行”按钮意味着它跳过了一步执行并进入执行部分。如下图所示。

新屏幕显示汇编语言

我的疑问是,为什么编译器在查看我的代码后会来到这里?如何分析这段汇编语言编码,这段代码的目的是什么?

4

2 回答 2

1

如果您暂停执行或触发断点,则调试区域打开,显示变量和寄存器的值以及调试控制台。您可以使用调试区域工具栏右端的按钮来显示变量控制台窗格或隐藏其中一个。

变量窗格显示变量和寄存器。您可以使用变量窗格左上角的弹出菜单指定要显示的项目:

  1. 根据当前上下文,自动仅显示您最可能感兴趣的变量。
  2. Local 显示局部变量。
  3. All 显示所有变量和寄存器。

使用搜索字段过滤变量窗格中显示的项目。

控制台窗格显示程序输出并允许您向调试器工具输入命令。您可以使用控制台窗格左上角的弹出菜单指定控制台显示的输出类型:

  1. All Output 显示目标和调试器输出。
  2. 调试器输出仅显示调试器输出。
  3. 目标输出仅显示目标输出。

使用这些来了解断点处发生的情况。

于 2013-08-28T03:22:11.577 回答
1

也许您的代码抛出异常并返回到 [UIViewController loadViewIfRequired] 方法。这个方法在编译的程序中,现在是二进制的,所以你不会看到源代码,而是显示汇编语言。

[UIViewController loadViewIfRequired] 可能有异常处理代码。

于 2013-08-28T03:31:23.240 回答