XCodedebugging器:为什么只显示我的汇编程序?

我刚刚开始在Xcode的cocoa开发,做你好世界的例子。 我到“ 运行时debugging ”这一节的第6步

使用debugging器工具栏中的跳过button,开始逐步执​​行代码。 随着每行代码执行,您可以检查程序的状态。 variables的值有时用红色表示,表示在上一步中修改了该值。 注意debugging器在执行指定行之前暂停。 在每次暂停之后,可以添加更多的断点或select“debugging”>“重新启动”来终止应用程序并启动新的debugging会话。

现在我过去一个小时把头发拉出来的事实是这个debugging器只会显示汇编代码。 我可以手动select我的源代码文件,但只要我点击“跳过”我马上回到汇编视图。 我无法想象如何closures汇编程序,并让它显示我的源代码!

我知道这篇文章已经有100年了,但是如果有人想知道如何在更新的Xcode版本(而不是Xcode 3)中解决这个问题,你会发现在Debug> Debug Workflow总是显示反汇编在Xcode 6以上。 确保选项被选中。

在Xcode 5中,该选项被标记为在debugging>debugging工作stream下显示debugging时的反汇编 。 确保未选中“显示debugging时的反汇编”。

回到Xcode 4,在产品>debugging工作stream程下find显示反汇编debugging设置。 再次确保该选项未被选中。

这也让我疯了。

注意:以上信息对于Xcode 9+仍然有效。 我已经应用更新到这个答案作为新版本的Xcode已经发布。 幸运的是,自Xcode 6以来,这个选项一直保持不变。

还有两件事要确定:

  1. 你正在看你自己的一个function/方法。 如果您正在查看的堆栈框架是来自其中一个框架的函数或方法,那么无论您如何configurationXcode,都将看到程序集。
  2. 您正在运行一个debugging版本。 剥离debugging符号(如在发布版本中),而且即使对于自己的代码,无论发生什么,您都将查看汇编。

实际上,在我发布之前,我已经明白了这一点,但是我想避免其他人将来可能会遇到的麻烦(以及以后忘记的情况),因为我无法通过search堆栈溢出来find答案,但是我确实发现不孤单。

从运行菜单中select“debugging器显示”>“仅源”或“debugging器显示”>“源代码和反汇编”