2012-08-26 41 views
2

我正在運行Xcode 4.4.1並構建一個iOS應用程序。我的應用程序崩潰,並有內存問題(我知道,因爲它崩潰在objc_msgSend)。XCode儀器 - 分配儀器找不到殭屍

所以我運行殭屍工具工具。問題是,它在運行時錯誤並沒有對我的幫助殭屍:

No Zombies found, no crashes

如果我關閉殭屍檢測,然後該程序可預見的崩潰。我是否正確使用殭屍工具?或者這是否表明我有其他問題?

無用的堆棧跟蹤如下...

#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() 
+0

您是否嘗試過在Xcode中運行Zombie診斷工具(Product-> Edit Scheme-> Diagnostics-> Enable Zombie Objects)?如果沒有,嘗試,並在設備或模擬器上運行你的應用程序。 – Till

+0

當我啓用Zombie Objects時,該應用程序可以正常工作,在使用殭屍的地方沒有日誌輸出或斷點。 –

+0

聽起來很多,就像你沒有任何殭屍那樣。也許如果你引用你的堆棧跟蹤和崩潰日誌,我們可以做得更好。 – Till

回答

2

有一個在之前的iOS 6.0(和Mac OS 10.8之前)ARC和NSZombieEnabled下,防止實例變量和屬性的自動釋放錯誤。

這解釋了你所看到的,因爲物體只是泄漏而不是變成殭屍。

解決方案:在iOS 6.0下測試。

附加信息:在5.1版模擬器中測試時,問題仍然存在。

+0

確實有趣 - 你有沒有機會獲得關於那個的一些背景信息(鏈接,openradar id,..)? – Till

+0

[在openradar中提到](http://openradar.appspot.com/10537635)。 –

+0

感謝那些信息,尼古拉。 – Till