2013-08-28 48 views
-2

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

Set breakpoint and check the step over

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

New screen shows Assembly Language

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

回答

1

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

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

  1. 自动显示只有你最有可能有兴趣 中给出的当前环境变量。
  2. 本地显示局部变量。
  3. 全部显示所有变量和寄存器。

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

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

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

使用这些来了解在断点处发生了什么。

1

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

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