【问题标题】:Xcode's Profiler does not show Symbol namesXcode 的 Profiler 不显示符号名称
【发布时间】:2012-09-18 14:43:01
【问题描述】:

更新到 xCode 4.5 并且在对我的应用程序进行分析时,符号名称不再显示类或对象,而是显示内存地址,见下文。

0x2fd42e13
0x38014448

我曾经看到以下内容

main
NSManagedObjectContext

当我可以看到类名时,我可以在扩展细节中追踪问题。现在扩展细节显示与 0x2fd42e13 相同的内容。

【问题讨论】:

  • 猜测 - 清理项目并重试?
  • 是的,首先尝试了。

标签: ios xcode profile


【解决方案1】:

自己解决了:

编辑您的方案,其中显示“WhateverProjectNameIs>iPad 6.0 模拟器”

然后点击左侧的“个人资料” 在 Info 选项卡上,将 Build Configuration 更改为 Debug(可能设置为 Release) 那应该这样做。请注意,无论出于何种原因,构建目标都没有设置为与配置文件目标相同的构建配置,这让我绊倒了一两次以上。

【讨论】:

  • 我尝试将构建配置更改为调试,但仍然无法正常工作。你还有其他想法吗?
  • 尝试关闭 xcode,清理项目并返回查看构建配置是否切换回?
  • 呸!我对这个答案寄予厚望,但没有喜悦。
  • 使用带有 Release 构建配置的 Instruments 非常好
【解决方案2】:

分析调试配置不会为您提供正确的配置文件值。调试配置不是为了速度而编译的,你所有的 NSLog 语句都还在。

我创建了一个“配置文件”构建配置来处理这个问题。请参阅 my answer 以了解类似的 Stackoverflow 问题。

【讨论】:

    【解决方案3】:

    我也有同样的问题,我尝试了其他人建议的所有步骤。但他们都没有为我解决这个问题。所以,我所做的是,我只是打开了Instruments 并在Record 按钮旁边,单击下拉菜单并使用Choose target 选项选择目标。然后点击Record按钮,现在我可以看到仪表板中的所有方法了:)

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,并尝试了其他解决方案无济于事。 Scheme问题通常是问题所在,所以我从那里开始。但就我而言,它已经正确配置。这是最终对我有用的方法:

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

      【讨论】:

        【解决方案5】:

        我知道这是一个老问题,但上面提到的解决方案都不适合我。我需要切换到最新的 iOS 模拟器(当前使用 iOS 9 而不是 iOS 8)才能正确显示符号名称。我认为 Xcode Instruments 只能与运行最新 iOS SDK 的模拟器一起使用。

        【讨论】:

          【解决方案6】:

          重启 Instruments 和 Xcode 解决了我的问题 :(

          【讨论】:

            【解决方案7】:

            将构建路径重置为默认值。我之前已将其更改为 tmp/ 文件夹,并且符号无法显示代码。重置此路径后,分析器可以显示正确的代码。构建路径(相对于派生数据)设置如下:

            【讨论】:

              【解决方案8】:

              为了解决我的问题,我不得不告诉 Instruments 我的二进制文件在哪里,因为它由于某种原因失去了对它的跟踪。

              1. 像往常一样运行 Instruments 以获取屏蔽数据。

              2. 在 Project Navigator 中,展开 Products 文件夹并单击您的应用程序(提供程序 (.appex) 或应用程序 (.app)。如果您的文件检查器不可见,请右键单击该应用程序并单击“显示文件检查器”

              3. 现在您应该在屏幕右侧看到二进制文件的文件检查器。对面点击“完整路径”属性,然后点击“复制”。

              4. 返回 Instruments 并转到 File->Symbols

              5. 在左侧下拉您的应用程序或提供程序,然后单击旁边带有点的项目(它应该与您的应用程序同名)

              6. 你会注意到二进制路径是红色的。这意味着 Instruments 丢失了您的二进制文件。单击右下角的小文件夹图标以弹出选择文件对话框。按Command+Shift+G输入目录路径,粘贴我们之前从xcode复制的路径。

              7。 您现在应该选择了二进制文件,单击Open 将其打开。单击对话框上的完成以关闭窗口。 Instruments 现在应该在分析您的代码时显示正确的详细信息和符号名称。

              1. 如果再次出现这种情况,并且您的二进制文件位于类似/Users/<User>/Library/Developer/Xcode/DerivedData/... 的路径中,则需要将其添加到 Instruments 中的默认搜索路径中。 /Library 不被 Spotlight 索引,因此不被 Instruments 搜索。转到 Instruments > Preferences > Symbols,然后添加 /Users/<User>/Library/Developer/Xcode/DerivedData/

              【讨论】:

              • 第 2 步:下拉产品文件夹。这到底是什么意思,你是怎么做到的?
              • @user3335999 在 xcode 的左侧,您应该有一个“项目导航器”,其中列出了项目中的所有文件。如果您没有看到它,请检查您的 xcode 窗口的右上角。应该有三个按钮,每个面板一个。单击左侧按钮启用左侧面板,然后单击左侧面板中的文件夹图标。如果您单击箭头下拉项目,您应该会看到一个名为“Products”的文件夹,将其下拉,您将看到您的两个二进制文件。
              • 很高兴这在 cmets 中得到了澄清!那一步我也很困惑。
              • 添加了一个额外的步骤,使此修复更加永久。没有它,Instruments 在我更新应用程序时都无法找到我的二进制文件。
              • 感谢这让我抓狂!我必须在第 6 阶段使用 Release-iphoneos 路径而不是 Debug-iphoneos 路径才能使其正常工作(即 DerivedData/MyApp-blablablablabla/Build/Products/Release-iphoneos/MyApp.app/MyApp)。显然,分析的默认设置是发布模式developer.apple.com/forums/thread/23815
              【解决方案9】:

              我在 Xcode 11.4 中遇到了同样的问题 1. 构建成功时在 Xcode 中显示 YOUR_PROJECT.app 文件夹,找到 Release-iphoneos 或 Debug-iphoneos 文件夹,根据您的配置文件的构建设置选择哪个。通常我们选择Release-iphoneos。 2. 在【Preferences】->【Symbols】中将该路径添加到 Instruments 中,搜索 YOUR_PROJECT.app.dSYM 文件。

              【讨论】:

                猜你喜欢
                • 2015-12-29
                • 1970-01-01
                • 2019-05-27
                • 2023-02-17
                • 1970-01-01
                • 2011-12-06
                • 2016-01-17
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多