奇怪的SQLite漏洞在iPhone上

时间:2010-01-01 12:29:07

标签: iphone sqlite memory-leaks

我正在寻找清理我应用程序的所有漏洞。

正如您在下面的图片中看到的那样,SQLite会造成大量内存泄漏。 我通过CoreData使用SQLite。最奇怪的是,AdresseBook正在使所有libsqlite3泄漏,我从不使用AdressBook !!!

你有什么想法吗?

谢谢:)

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

2 个答案:

答案 0 :(得分:1)

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

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

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

  1. 第46,47和48帧没有符号。你在运行调试版本吗?如果没有,请执行此操作并解决这些框架。

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

  3. (这些“泄漏”也有可能不是真正的泄漏,但是是误报。可能不是,但你追逐鬼的可能性很小)

    在任何情况下,修复泄漏的最佳方法是首先关注易泄漏 - 您理解的泄漏 - 并查看剩余的泄漏。许多泄漏通常是其他泄漏的副产品。

答案 1 :(得分:0)

我们可以看到整个痕迹吗?

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