【问题标题】:How to find memory leaks if they cause the app to crash?如果它们导致应用程序崩溃,如何找到内存泄漏?
【发布时间】:2013-09-20 12:41:39
【问题描述】:

我使用 Leak Instruments 查找 Leaks 并将 NSZombieEnabled 设置为 YES。当我按下 tableView 中的按钮或特定行时,我的应用程序崩溃并且我无法在 Instruments 中找到任何信息。

我按照这里的教程进行操作:

http://www.raywenderlich.com/2696/instruments-tutorial-for-ios-how-to-debug-memory-leaks

当我的应用程序崩溃时,如何在 Instruments 中识别或获取更多信息?

【问题讨论】:

  • 泄漏不会导致崩溃(可能在内存耗尽时),但 Zombie 可以
  • 可以添加崩溃报告和一些代码吗?
  • 如果您在模拟器上遇到此崩溃,而不是使用僵尸选项运行分析器工具,这将为您提供僵尸对象详细信息。一旦您启动此选项,请转到您在应用程序中崩溃的位置,您将获得标志单击该选项并在工具中启用选项 3rd 选项,该选项可能会为您提供堆栈,然后单击显示您的代码位置的堆栈方法可能导致崩溃的代码位置或对象可能僵尸。(红色线)。但是这个僵尸选项不是可用于设备。

标签: iphone ios memory memory-leaks crash-reports


【解决方案1】:

僵尸并不是你唯一可以拥有的东西。

找到泄漏的唯一方法是使用“泄漏”组件的分析器。

尝试同时运行 Project / Analyze 以对您的代码进行内存管理错误的静态分析。

对于崩溃-我认为您只是代码中有错误-并没有真正泄漏。在您的 xcode 中启用异常断点以捕获问题!

http://blog.manbolo.com/2012/01/23/xcode-tips-1-break-on-exceptions

【讨论】:

    【解决方案2】:

    使用 Zombie 找出 Zombie 消息。它会向您显示带有消息的粉红色标志。

    【讨论】:

    【解决方案3】:

    您可以通过从编辑模式启用并在运行选项卡中勾选启用僵尸对象来使用僵尸消息,您可以从控制台看到释放的对象

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 1970-01-01
      • 2017-06-09
      • 2013-05-09
      • 2015-08-17
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多