请帮我跟踪iOS内存泄漏情况。谢谢!
我正在使用xCode 4.0.1并尝试激活NSZombie以跟踪内存泄漏,但它似乎不像以前一样工作,使用xCode 3.x
我无法找到内存泄漏的来源,因为Instruments指出了这一点:
泄漏对象 - >的 GeneralBlock-32 地址 - >的 0x4c8600 尺寸 - > 32字节 负责任的图书馆 - >的 libsystem_c.dylib 负责任的框架/来电 - >的 strup
此时我不知道我是否正在使用乐器与NSZombie正确使用xCode 4,因为当我点击“i”以获取更多信息时它不会显示NSZombie选项信息,在左侧选项泄漏。
下观察:我的iPhone应用程序播放实时流mms / wma以及wma udioudio文件的时间有限。使用有限的wma文件,仅发生泄漏,但当我从流式传输源播放时完全,没有结束时间。
答案 0 :(得分:10)
首先,这是一个malloc
块,而不是一个对象。僵尸不会工作(也不会在以前的版本中工作)。
泄漏发生了多少次?一旦?别担心。每个流一次?提交一个错误 - 到目前为止你的代码中没有这个错误(除非你的代码正在调用strdup
,这肯定是可能的,但在大多数没有大量使用第三个的iOS应用程序中是非典型的派对图书馆......你呢?)
在任何情况下,除非它在您的应用程序的运行时间内泄漏100s和100s的32字节分配,否则不要担心(但请提交错误)。
正如Valkio所说,你可以直接从gdb(或从Instruments)获取分配的堆栈跟踪。
答案 1 :(得分:5)
如果你这样做,你可以看到它的分配位置: