Xcode 4 Instruments不显示源代码行

Mar*_*tos 28 xcode debug-symbols xcode-instruments

我刚开始玩Xcode 4,发现无论我如何在项目中设置调试符号,Instruments都拒绝显示与我的代码对应的堆栈跟踪项的源代码行.仅显示十六进制偏移量并将我的可执行文件标识为拥有模块.启用"源位置"也是一个空白.即使对于Xcode生成的骨架OpenGL ES项目(文件→新建→新建项目...→iOS→应用程序→OpenGL ES应用程序),也会发生这种情况.

这个问题只发生在仪器中(到目前为止我尝试过CPU和OpenGL跟踪).Gdb很好地选择了调试符号.

我是否必须做一些特殊的事情来查看Instruments中堆栈跟踪的源代码,或者这是Xcode 4中的错误?

到目前为止,我已经:

  • 改变Debug Information FormatDWARF with dSYM FileDWARF.
  • 改变Strip Debug Symbols During CopyYesNo.
  • 更改了构建方案以使用Debug构建而不是使用Instruments构建Release构建.

Phi*_*vin 48

其他答案是良好的长期修复.如果您不想等待Spotlight重建其索引并且只需要为一个Instruments会话获取符号,您可以要求Instruments指示当前会话.

  1. 选择文件→重新符号化文档... 重新符号化菜单项的屏幕截图
  2. 在显示的列表中找到您的二进制文件.它应该与您在Springboard上看到的名称相同.选择二进制文件,然后单击"定位".在此输入图像描述
  3. 回到Xcode.按住Control键并单击.app构建产品,然后选择"在Finder中显示".右键单击菜单屏幕截图,显示在finder项目中显示
  4. 这将显示包含二进制dSYM文件及其文件的目录.返回Instruments,导航到此目录,然后选择您的dSYM文件.最简单的方法是将dSYM文件直接从Finder 拖动到Instruments中的"Select dSYM"对话框.
  5. 最后,单击"仪器"中的"符号".您现在应该在轨迹中看到符号而不是十六进制偏移.

  • 谢谢 - 这很有帮助.另外需要注意的是,如果在查找程序或打开文件对话框中看不到"库"文件夹,请转到终端并执行:chflags nohidden~/Library (5认同)
  • 我的二进制文件未在列表中列出(按照2.)是否有其他人遇到此问题并找到了解决方案? (4认同)

Jon*_*Boy 44

我今天遇到了这个问题并以这种方式解决了它:

  1. 编辑方案
  2. 点击左侧的"个人资料"(这是重要的一步)
  3. 将构建配置更改为调试

应该这样做.请注意,无论出于何种原因,构建目标都没有设置为与配置文件目标相同的构建配置,这使我绊倒了一两次.

  • Release中的性能分析提供了与Debug中非常不同且更有用的结果.将配置文件设置切换到调试不是一个好主意. (10认同)
  • + 180这应标记为正确答案. (4认同)
  • 这是正确的答案.Debug应在Debug中进行配置.发布应在发布中进行配置 (4认同)