【问题标题】:Strange SQLite leaks on iPhoneiPhone上奇怪的SQLite泄漏
【发布时间】:2010-01-01 12:29:06
【问题描述】:

我正在寻找清除我应用的所有漏洞。

如下图所示,SQLite 会造成大量内存泄漏。 我确实通过 CoreData 使用 SQLite。最奇怪的是,AdresseBook 导致所有 libsqlite3 泄漏,而我从不使用 AdressBook!!!

你有什么想法吗?

谢谢你:)

Leaks http://img196.imageshack.us/img196/3997/leaks.png

【问题讨论】:

    标签: iphone sqlite memory-leaks


    【解决方案1】:

    CoreData 不会产生任何已知的泄漏,因此您的应用必须以某种方式触发它。 AddressBook 是 iPhone 上一个相对普遍的框架,因为其他系统框架最终会拉入 AB 和 AB 的数据。

    因此,您的应用中有一些东西触发了 AB 的使用,然后触发了 CoreData 的使用。

    无论如何,由于您不直接使用 SQLite,因此您应该将分析工作重点放在堆栈跟踪中;在您的代码和系统框架之间的接口处。看那张截图,有两个可疑的属性:

    1. 第 46、47 和 48 帧没有符号。您正在运行调试版本吗?如果没有,请执行此操作,并且应该解决这些帧。

    2. 提到了一堆与线程相关的东西。你绝对确定你已经正确地完成了你的线程吗?在线程应用程序中创建泄漏非常容易。

    (也有可能这些“泄密”并不是真正的泄密,而是误报。可能不是,但有小概率是在追鬼)

    在任何情况下,修复泄漏的最佳方法是首先关注容易发生的泄漏——你理解的那些——然后看看还有什么。许多泄漏通常是其他泄漏的副产品。

    【讨论】:

      【解决方案2】:

      我们能看到整个轨迹吗?

      另外我猜你已经运行了静态分析器?如果没有,您可以通过以下方式找到它:构建 -> 构建和分析

      【讨论】:

        猜你喜欢
        • 2010-12-18
        • 2011-09-08
        • 2012-07-06
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        • 2010-11-04
        • 1970-01-01
        相关资源
        最近更新 更多