Xcode Debugger:为什么它只显示汇编程序?

Bre*_*ton 49 debugging xcode cocoa

我刚开始使用Xcode中的Cocoa开发,做了hello world示例.我要完成" 运行时调试 " 部分的第6步,即

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

现在我在过去一小时里把头发拉出来的事实是这个调试器只显示汇编代码.我可以手动选择我的源代码文件,但是一旦我点击"Step over",我就会立即回到汇编视图中.我不能为我的生活弄清楚如何关闭汇编程序,并让它显示我的源代码!

Mik*_*ahy 129

我知道这篇文章已有百年历史,但如果有人想知道如何在最新的Xcode版本中解决这个问题(而不是Xcode 3),你会在Debug> Debug Workflow下找到标记为Always Show Disassembly的相应设置.在Xcode 6及以上.确保选项选中.

在Xcode 5中,该选项在Debug> Debug Workflow下被标记为Show Disgingmbly Debugging.确保未选中"在调试时显示反汇编".

回到Xcode 4,在Product> Debug Workflow下找到Show Disassembly When Debugging设置.再次确保选项保持未选中状态.

这也让我发疯了.

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

  • @VeryVito取消选中"Always Show Disassembly"不会阻止调试器在Xcode 6.1中显示反汇编.我不得不假设这是一个错误. (10认同)
  • XCode6怎么样?它现在是"总是显示拆卸",它在我的结束时没有被检查,而且它太深了. (4认同)
  • 有没有人能够找到一种方法来阻止调试器在Xcode 6.1中显示反汇编?当我运行我的代码并在代码块结束时进入或跳过它时,即使我没有使用Always Show Disassembly unmarked,它也总是将我带到程序集.是否有明确的标记表示永不显示反汇编? (2认同)

Pet*_*sey 11

还有两件事需要确定:

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