在Xcode中使用断点

时间:2013-08-28 03:13:46

标签: iphone ios objective-c xcode

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

Set breakpoint and check the step over

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

New screen shows Assembly Language

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

2 个答案:

答案 0 :(得分:1)

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

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

  1. 自动仅显示您最感兴趣的变量 在目前的背景下。
  2. 本地显示本地变量。
  3. 全部显示所有变量和寄存器。
  4. 使用搜索字段过滤变量窗格中显示的项目。

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

    1. 所有输出显示目标和调试器输出。
    2. 调试器输出仅显示调试器输出。
    3. 目标输出仅显示目标输出。
    4. 使用这些来了解断点处发生的事情。

答案 1 :(得分:1)

也许您的代码会转换异常并返回[UIViewController loadViewIfRequired]方法。此方法在已编译的程序中,现在是二进制的,因此您将看不到源代码,而是显示汇编语言。

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