Instruments 堆栈跟踪中缺少方法调用

Absent method calls in Instruments stack trace

我正在尝试使用 Instruments 分析我的应用程序在设备上的内存分配情况。问题是探查器在堆栈跟踪中只显示本地方法调用;我自己的方法没有出现,这使得堆栈跟踪完全没有用。

我正在使用 XCode 6.4,设备是 iPhone 5c 运行 iOS 8.4.

如有任何帮助,我们将不胜感激。

此问题是由于 XCode 在构建过程中生成的 .dSYMM 文件造成的。该文件在调试模式下用于符号化方法调用。 Instruments 似乎不知道它的位置。为了解决这个问题,我必须执行以下操作:

  • 在乐器下开始录制之前,转到文件->符号
  • 展开您的应用项目和select您的应用名称
  • 点击dSYM路径前的"Locate"
  • app对应的dSYM文件应该在~/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/[APP_NAME].app.dSYM.
  • 应弹出一个对话框,询问您 Instruments 是否应始终在该位置下查找 dSYM 文件;这就是你想要的
  • 开始录制;您的方法调用现在应该可以正确显示

在 Instrument 8.2.1 中,删除 ~/Library/Developer/Xcode/DerivedData 中的文件夹似乎可以解决问题。