代码之家  ›  专栏  ›  技术社区  ›  Breton

Xcode调试器:为什么它只显示汇编程序?

  •  46
  • Breton  · 技术社区  · 15 年前

    我刚从Xcode中的cocoa开发开始,做了一个hello world示例。我已经到了第6步了” runtime debugging “这是

    使用调试器工具栏中的“单步执行”按钮,开始单步执行代码。当每行代码执行时,您可以检查程序的状态。变量的值有时以红色绘制,以指示在最后一步中修改了该值。 请注意,调试器在执行指示的行之前会暂停。每次暂停后,可以添加其他断点,也可以选择“调试”>“重新启动”终止应用程序并启动新的调试会话。

    在过去的一个小时里,我一直在胡思乱想,事实上这个调试器只显示程序集代码。我可以手动选择我的源代码文件,但只要单击“单步执行”,我就回到汇编程序视图中。我一辈子都不知道如何关闭汇编程序,让它向我展示我的源代码!

    3 回复  |  直到 6 年前
        1
  •  125
  •   Mike Fahy kmiklas    6 年前

    我知道这篇文章已经有一百年的历史了,但是如果有人想知道如何在最新的Xcode版本(而不是Xcode3)中解决这个问题,您会发现适当的设置 始终显示反汇编 在下面 调试>调试工作流 在Xcode 6及更高版本中。确保选项是 不是 选中的。

    在Xcode5中,选项被标记为 调试时显示反汇编 在下面 调试>调试工作流 . 确保未选中“调试时显示反汇编”。

    回到xcode 4中, 调试时显示反汇编 在下找到设置 产品调试工作流 . 再次确保该选项保持未选中状态。

    这也把我逼疯了。

    注:以上信息对Xcode 10+仍然有效。随着Xcode的新版本发布,我已经将更新应用于这个答案。幸运的是,该选项自Xcode6(到目前为止)以来一直保持不变。

        2
  •  10
  •   Peter Hosey    15 年前

    还有两件事要确保:

    1. 您正在查看自己的函数/方法之一。如果您正在查看的堆栈框架是某个框架中的函数或方法,那么无论您如何配置Xcode,都将看到程序集。
    2. 您正在运行调试生成。去掉调试符号(就像在发布版本中一样),您将看到程序集,甚至是您自己的代码,不管是什么。
        3
  •  2
  •   Breton    15 年前

    我在发布之前就已经知道了这个问题,但是我想避免其他人将来可能会遇到的麻烦,(并且在以后我会忘记的情况下),因为我无法通过搜索堆栈溢出来找到答案,但是我确实发现了 I'm not alone.

    从“运行”菜单中,选择“调试器显示”>“仅源”,或“调试器显示”>“源和反汇编”