objective-c - iOS libsystem_c.dylib strdup 内存泄漏 NSZombie 不工作

标签 objective-c ios memory-leaks instruments nszombie

请帮助我追踪 iOS 内存泄漏。谢谢!

我正在使用 xCode 4.0.1,我试图激活 NSZombie 来跟踪内存泄漏,但它似乎不像以前那样工作,xCode 3.x

我无法找出内存泄漏的来源,正如 Instruments 指出的那样:

泄漏对象 -> GeneralBlock-32 地址 -> 0x4c8600 大小 -> 32 字节 负责图书馆 -> libsystem_c.dylib 负责的框架/调用者 -> strup

在这一点上,我不知道我是否在 xCode 4 中以正确的方式将 Instruments 与 NSZombie 一起使用,因为当我单击“i”以获取更多信息时,它没有显示 NSZombie 选项信息,在左侧选项 Leaks 下。

观察:我的 iPhone 应用程序在有限的时间内播放实时流 mms/wma 和 wma 音频文件。泄漏发生在有限的 wma 文件中,但当我从流媒体源播放时完美运行,没有结束时间。

最佳答案

首先,这是一个malloc block ,而不是一个对象。 Zombies 将不起作用(并且在以前的版本中也永远不会起作用)。

泄漏发生了多少次?一次?别担心。每个流一次?提交一个 bug——从你目前发布的内容来看,它不在你的代码中(除非你的代码正在调用 strdup,这当然是可能的,但在大多数不重的 iOS 应用程序中是不典型的使用第三方库...是吗?)

在任何情况下,除非它在您的应用程序运行时泄漏 32 字节分配的 100 和 100,否则不要担心(但请务必提交错误)。

正如 Valkio 所说,您可以直接从 gdb(或从 Instruments)获取分配的堆栈跟踪。

关于objective-c - iOS libsystem_c.dylib strdup 内存泄漏 NSZombie 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5899419/

相关文章:

iphone - UIActivityIndi​​catorView 不呈现

ios - iFrame block 未显示在iPhone中

ios - 选择器方法不调用

c++ - 当我使用 operator new 分配 1k 字节大小的内存时,操作系统在 Windows 中会做什么?

memory-leaks - 使用pytest进行pyqt测试中的内存泄漏

objective-c - Mac 创建简单的 dylib?

objective-c - MD5没有为iOS中的在线文件提供正确的哈希

iphone - 存储和检索多维 NSMutableArray 的最佳方式是什么?

ios - UISearchController 隐藏搜索栏

javascript - three.js 和许多形状的内存泄漏