【问题标题】:use instruments - leaks with a device使用仪器 - 使用设备泄漏
【发布时间】:2011-05-18 10:13:10
【问题描述】:

我开始在 iPhone 3G 上使用 Instruments-Leaks。当我尝试在 iPhone 上使用 Instruments 运行应用程序时,我获得了

Target failed to run: Remote exception encountered: 'Failed to get task for pid 280'

想法?

我唯一一次成功地使用运行速度非常慢的仪器运行该应用程序,我无法对其进行测试。 在设备上运行应用程序搜索泄漏的步骤是什么?

【问题讨论】:

  • 虽然我不能直接帮助你解决你的问题,here 是我最近发现有用的指南。它会引导您完成一个示例项目,并向您展示如何使用仪器来查找泄漏。
  • 谢谢。现在它运行了,但它仍然很慢......
  • 这可能是一个很好的教程,但对于错误没有帮助:'Failed to get task for pid XXX'

标签: ios memory-leaks instruments memory-leak-detector


【解决方案1】:

我的解决方案是确保我的配置文件方案使用的是“调试”而不是“发布”构建配置。

在 Xcode 4 中,从顶部菜单中选择 Product/Edit Scheme 然后点击左侧的“个人资料”按钮。 在“信息”窗格中,您将看到构建配置的设置 - 将其设置为“调试”

【讨论】:

  • 您可能需要在设备上重新启动 Xcode/clean/delete 应用程序(这些的某种组合)。
  • 这不是真正的修复,对吧?分析应该在发布版本上。
  • 希望我能对此表示赞同。我想我已经回到这个问题大约 3 次了......谢谢!
  • @pumpk1n 如果它可以在发布版本上会很好,但如果发布版本没有附加分析器所需的钩子......
  • @bogardon 是正确的。分析(仪器)应该在发布版本上完成。没有什么可以阻止您分析正在运行的发布版本。您可以在流程开始后手动附加仪器...
【解决方案2】:

如果您尝试在选择了分发配置文件的设备上测试您的应用,也会引发此错误。确保您具有正确的开发代码签名设置。

【讨论】:

  • 如果这确实是正确的,这是最好的答案——上面评价很高的答案也可以解决问题,但对于我们这些在 Debug 和 Release 配置文件之间有显着性能差异的人来说,它只需使用 Debug...
【解决方案3】:

您可以在设备上配置发布版本。您需要做的是使用开发人员证书构建发布版本。见here

【讨论】:

    【解决方案4】:

    Instruments 基本上是通过成为应用程序的调试器来完成其工作的。如果你不能针对它运行 Xcode 的调试器,那么你就不能针对它运行 Instruments。

    大多数情况下,需要设置授权以允许调试。

    有时在使用 XCode 调试应用程序后,我发现在重新启动设备之前我无法使用 Instruments。

    与 XCode 不同,Instruments 可能会在名称相同但捆绑包 ID 不同的两个应用之间混淆。 (或者可能是相同的名称和类似的捆绑 ID。)当我在设备上有多个版本的应用程序时,我经常需要删除额外的内容才能让 Instruments 连接到正确的应用程序。如果您有一个调试版本和一个发布版本,这可能就是问题所在。

    因此,请删除您应用的所有重复项并重新启动设备。 (您可以更改发布和调试构建配置的显示名称。)

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 2019-08-18
      • 2011-06-23
      • 1970-01-01
      • 2011-07-11
      相关资源
      最近更新 更多