XCode仪器 - 分配仪器没有找到僵尸

时间:2012-08-26 17:30:06

标签: iphone ios xcode ios5 nszombie

我正在运行Xcode 4.4.1并构建iOS应用程序。我的应用程序崩溃并且有内存问题(我知道因为它在objc_msgSend上崩溃了。)

所以我正在运行Zombies Instruments工具。问题是,它运行没有错误,没有关于我的僵尸的帮助:

No Zombies found, no crashes

如果我关闭Zombie检测,那么程序可以预测崩溃。我是否正确使用Zombie工具?或者这表明我有不同的问题?

无用的堆栈跟踪......

#0  0x0212a09b in objc_msgSend ()
#1  0x01bd36b7 in -[NSError dealloc] ()
#2  0x0212ae3d in _objc_rootRelease ()
#3  0x01bc1f28 in -[NSFilesystemItemRemoveOperation dealloc] ()
#4  0x01bb0e16 in -[NSOperation release] ()
#5  0x0212ae00 in objc_release ()
#6  0x0212bc50 in (anonymous namespace)::AutoreleasePoolPage::pop(void*) ()
#7  0x004faea8 in _CFAutoreleasePoolPop ()
#8  0x004fd80b in __CFRunLoopRun ()
#9  0x004fcd84 in CFRunLoopRunSpecific ()
#10 0x004fcc9b in CFRunLoopRunInMode ()
#11 0x02ca57d8 in GSEventRunModal ()
#12 0x02ca588a in GSEventRun ()
#13 0x0127a626 in UIApplicationMain ()
#14 0x00002e5d in main at /Users/willentriken/Developer/EnglishStudy/EnglishStudy/main.m:16
#15 0x00002dc5 in start ()

1 个答案:

答案 0 :(得分:2)

在ARC和NSZombieEnabled下,6.0之前的iOS(以及10.8之前的Mac OS)中存在一个错误,它会阻止自动释放实例变量和属性。

这解释了你所看到的,因为物体只会泄漏而不是变成僵尸。

解决方案:在iOS 6.0下进行测试。

其他信息:在使用5.1模拟器进行测试时,Mountain Lion会出现问题。