【问题标题】:Xcode's Time Profiler shows addresses instead of symbolsXcode Time Profiler 显示地址而不是符号
【发布时间】:2015-12-29 15:31:47
【问题描述】:

总的来说,我的问题可以在这个屏幕截图上看到:

很多非符号化地址和“符号”菜单中的一些看起来损坏的东西。

好吧,以及一些试图解决这个问题的设置和操作。 但仍然没有任何帮助:

  • 配置文件选项卡设置为使用调试
  • 调试和发布都禁用符号剥离
  • 调试和发布的优化级别均为“无”
  • 清理、删除、重启等
  • mdimport ~/Library/Developer/
  • DWARF 和 dSYM 格式

【问题讨论】:

  • 不寻常。它应该使用默认的符号/剥离设置在发布模式下运行(无需分析未优化的代码)。我从来没有遇到过任何问题。
  • 两种模式都运行过
  • @bronenos 确保 Generate Debug Symbols 构建设置设置为 Yes。
  • 两种模式都设置为“是”
  • 我遇到的次数太少了,我认为这是错误,重新启动 Xcode 总是对我有用。

标签: ios xcode instruments


【解决方案1】:

在我正在分析的目标上激活“始终嵌入 Swift 标准库”,为我修复了它。 YMMV

【讨论】:

    【解决方案2】:

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

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

    *另外不要忘记预先生成.dSYM文件

    【讨论】:

      【解决方案3】:

      就我而言,我已将派生数据目录排除在聚光灯之外。事实证明,如果你这样做,你必须通过 Instruments -> Preferences -> Symbols 将它添加回工具

      【讨论】:

        【解决方案4】:

        我在模拟器中运行时遇到了同样的问题,这让我抓狂,因为所有标准的首选修复程序都不起作用。

        对我来说,它的作用是将我的 iPad 插入 MacBook 并针对我插入的 iPad 上的上述应用程序运行仪器会话。 Instruments 在 iPad 上运行时正确地符号化了我的应用程序,然后在我断开 iPad 并稍后在模拟器中运行仪器时继续工作。

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

        • libsqlite3.tbd 代替 libsqlite3.dylib
        • libstdc++.6.tbd 代替 libstdc++.dylib

        我不知道为什么会这样,但这是我在 Instruments 中丢失符号之前所做的唯一项目更改。

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题 - 并且也完成了您列表中的所有操作。这是最终对我有用的方法:

          • 在 Instruments 中,如果进程正在运行,请停止它。
          • 转到文件 -> 符号,然后在 dSYM 路径下,找到未被符号化的库。
          • 在我的例子中,它指向回收站中的项目。所以我清空了垃圾箱,删除了 Derived Data 文件夹中的模块缓存和项目,当我重建项目时,它又开始工作了。在您的情况下,它可能指向其他一些不存在或 Instruments 无法访问的文件。

          【讨论】:

            猜你喜欢
            • 2012-09-18
            • 2013-05-21
            • 2017-01-03
            • 2020-08-16
            • 2019-09-16
            • 1970-01-01
            • 1970-01-01
            • 2015-09-11
            • 1970-01-01
            相关资源
            最近更新 更多