Xcode的时间分析器显示的是地址而不是符号

19

一般来说,我的问题可以在这个屏幕截图中看到:

有很多非符号化的地址和在“Symbols”菜单内看起来破碎的内容。

嗯,还有一些尝试解决这个问题的设置和操作。 但是没有一个还能帮助我:

  • Profile选项卡被设置为使用Debug
  • 对于Debug和Release,符号剥离均已禁用
  • 优化级别对于Debug和Release均为“none”
  • Clean,Delete,Restart等
  • mdimport ~/Library/Developer/
  • DWARF和dSYM格式

不寻常。应该在发布模式下运行(没有必要对未优化的代码进行分析),使用默认的符号/剥离设置。我从来没有遇到过任何问题。 - Droppy
我已经在两种模式下运行它。 - bronenos
@bronenos 请确保将“生成调试符号”构建设置设置为“是”。 - Swift Dev Journal
设置为“是”以启用两种模式。 - bronenos
1
我也遇到过这个问题,我认为这是一个bug,重启Xcode对我总是有效的。 - Alexander Yakovlev
5个回答

6
我曾经遇到过同样的问题 - 并且按照您列出的清单做了一切。最终,以下方法对我有效:
  • 在Instruments中,如果进程正在运行,请停止它。
  • 转到文件 -> 符号,在dSYM路径下,找到未被符号化的库。
  • 在我的情况下,它指向废纸篓中的项目。因此,我清空了废纸篓,在Derived Data文件夹中删除了模块缓存和项目,当我重新构建项目时,它又开始工作了。在您的情况下,它可能指向其他某个文件,该文件不存在或无法通过Instruments访问。

1

在我正在进行性能分析的目标上激活“始终嵌入Swift标准库”对我有帮助。可能会因人而异。


0

我在模拟器上遇到了同样的问题,所有标准解决方法都无效,这让我很烦恼。

最后我将我的iPad连接到MacBook上,并对插入的iPad上的应用程序运行instruments会话。当在iPad上运行时,Instruments正确地符号化了我的应用程序,并在我断开iPad并稍后在模拟器中运行instruments时继续工作。

我怀疑这与更新我的项目使用以下内容有关...

  • libsqlite3.tbd而不是libsqlite3.dylib
  • libstdc++.6.tbd而不是libstdc++.dylib

我不知道为什么会出现这种情况,但那是我失去符号的唯一项目更改。


0
在我的情况下,我已经从 Spotlight 中排除了我的派生数据目录。事实证明,如果您这样做,您必须通过“Instruments -> Preferences -> Symbols”将其添加回仪器中。

0

您可以使用 Instruments 12.0 添加您的 dSYM[关于]

Instruments -> Preferences... -> Symbols
//or
File -> Symbols...
//if File -> Symbols... is not active - stop the process and try again

*同时不要忘记事先生成.dSYM文件


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接