【问题标题】:Strange memory leaks showing up in InstrumentsInstruments 中出现奇怪的内存泄漏
【发布时间】:2011-08-13 10:20:52
【问题描述】:

每隔几周,我就会使用工具检查我的应用程序是否存在内存泄漏(非常棒的工具,真的)。正如您在屏幕截图中看到的那样,其中存在一些内存泄漏。我过去常常忽略这些,因为我从来不知道它们为什么在那里,而且它们似乎并没有增加。

它们是在发布时创建的,嗯……这就是我对它们的全部了解。 关于如何找出导致这些泄漏的库或部分代码的任何想法?

--谢谢

【问题讨论】:

  • 贴一些你正在使用的代码,我们不是“工具”。
  • 如果我知道是什么代码导致了这些泄漏,我会修复它,我的应用程序是 23.000 行代码

标签: objective-c cocoa xcode memory-leaks instruments


【解决方案1】:

一种方法是从扩展详细信息视图中读取回溯 (cmd+e)

【讨论】:

  • 它说这个块没有可用的堆栈跟踪
  • 好的。当这种情况发生在我身上时,我会验证该对象是用调试符号构建的,并且仪器可以找到它们(如果它们在单独的文件中)。有时我会根据可以象征的内容(在周围的框架中)推断程序是(或不是)我的。
  • 不确定,我在发布这些之前有一些泄漏,但它准确显示了是什么符号或 objc 方法创建了它们——我会再检查一次
【解决方案2】:

将视图切换到调用树视图,然后选中左侧的隐藏系统库和隐藏缺失符号选项。

您应该能够看到堆栈跟踪,显示您的代码中泄漏的来源。

如果什么都没有显示,那么以下几件事之一是正确的:

  • 泄漏不是您的错,而是在系统库之一中
  • 应用未使用调试符号构建

确保调试符号没有被删除,然后重试。

如果仪器仍然没有显示任何内容,请取消选中隐藏系统库框,记下仪器显示的泄漏位置,并将其报告给 Apple http://bugreport.apple.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2011-06-28
    • 2015-05-09
    • 2021-03-28
    • 2020-12-19
    相关资源
    最近更新 更多