【问题标题】:Xcode Debugger: Why is it only showing me assembler?Xcode Debugger:为什么只显示汇编程序?
【发布时间】:2010-11-28 02:39:42
【问题描述】:

我刚开始在 Xcode 中进行 Cocoa 开发,做 hello world 示例。我已完成“runtime debugging”部分的第 6 步,即

使用调试器工具栏中的 Step Over 按钮,开始单步调试代码。随着每一行代码的执行,您可以检查程序的状态。变量的值有时会以红色绘制,表示该值在最后一步中被修改。 请注意,调试器在执行指示的行之前暂停。每次暂停后,您可以添加额外的断点或选择 Debug > Restart 以终止应用程序并启动新的调试会话。

在过去的一个小时里,我一直在纠结的是,这个调试器只会显示汇编代码。我可以手动选择我的源代码文件,但只要我单击“Step over”,我就会立即回到汇编程序视图中。我一辈子都想不通如何关闭汇编程序,让它显示我的源代码!

【问题讨论】:

    标签: xcode cocoa debugging


    【解决方案1】:

    实际上,我在发布之前就已经想到了这一点,但我想避免其他人未来可能会头疼的问题,(以及以防我以后忘记),因为我无法通过搜索堆栈溢出找到答案,但我确实找到了I'm not alone.

    从运行菜单中,选择“Debugger Display”>“Source Only”,或“Debugger Display”>“Source and Disassembly”

    【讨论】:

      【解决方案2】:

      还有两件事需要确保:

      1. 您正在查看您自己的函数/方法之一。如果您正在查看的堆栈框架是来自其中一个框架的函数或方法,那么无论您如何配置 Xcode,您都会看到程序集。
      2. 您正在运行调试版本。去掉调试符号(就像在发布版本中一样),您甚至会为自己的代码查看程序集,无论如何。

      【讨论】:

      • 没有解决我的问题,但有趣的信息...谢谢
      【解决方案3】:

      我知道这篇文章已有一百年历史了,但如果有人想知道如何在最近的 Xcode 版本(而不是 Xcode 3)中解决这个问题,您会找到标记为 Always Show 的适当设置Xcode 6 及更高版本中Debug>Debug Workflow 下的反汇编。确保该选项已选中。

      在 Xcode 5 中,该选项在 Debug>Debug Workflow 下标记为 Show Disassembly When Debugging。确保取消选中“调试时显示反汇编”。

      回到 Xcode 4,Show Disassembly When Debugging 设置位于 Product>Debug Workflow 下。再次确保该选项保持未选中状态。

      这也让我发疯了。

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

      【讨论】:

      • 这个设置在 Xcode 4.4 中会是什么样子?我已经取消选中“调试时显示反汇编”选项,但仍然得到汇编程序窗口。
      • XCode6 怎么样?现在是“始终显示反汇编”,我没有选中它,而且它太深了。
      • @VeryVito 取消选中“始终显示反汇编”不会阻止调试器在 Xcode 6.1 中显示反汇编。我不得不假设这是一个错误。
      • 有没有人能够找到一种方法来阻止调试器在 Xcode 6.1 中显示反汇编?当我运行我的代码并在代码块的末尾进入或跳过时,即使我没有未标记始终显示反汇编,它也总是将我带到程序集。从不显示反汇编有明确的标记吗?
      • @MikeFahy 谢谢
      猜你喜欢
      • 2011-01-22
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2011-03-12
      • 2010-10-30
      • 2011-07-02
      相关资源
      最近更新 更多