QuartzCore - iOS8 崩溃
Posted
技术标签:
【中文标题】QuartzCore - iOS8 崩溃【英文标题】:QuartzCore - Crash in iOS8 【发布时间】:2015-02-20 06:06:58 【问题描述】:发布我的 ios 应用程序的新版本后,我经常遇到以下崩溃。
崩溃:WebThread EXC_BAD_ACCESS KERN_INVALID_ADDRESS 在 0x80000012
这是令人讨厌的崩溃之一,其中堆栈跟踪没有提供任何与其崩溃的位置或导致崩溃的原因相关的线索。一件主要的事情是这种崩溃只存在于 iOS8 中。请在堆栈跟踪下方找到:
0 libobjc.A.dylib objc_msgSend + 5 release
1 CoreFoundation CFRelease + 600
2 QuartzCore CA::release_objects(X::List<void const*>*) + 16
3 QuartzCore -[CAAnimation dealloc] + 54
4 libobjc.A.dylib objc_object::sidetable_release(bool) + 166
5 libobjc.A.dylib (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 404
6 CoreFoundation _CFAutoreleasePoolPop + 16
7 Foundation -[NSAutoreleasePool drain] + 122
8 CFNetwork AutoAutoreleasePool::~AutoAutoreleasePool() + 24
9 CFNetwork ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 166
10 CFNetwork RunloopBlockContext::_invoke_block(void const*, void*) + 60
11 CoreFoundation CFArrayApplyFunction + 36
12 CFNetwork RunloopBlockContext::perform() + 182
13 CFNetwork MultiplexerSource::perform() + 216
14 CFNetwork MultiplexerSource::_perform(void*) + 48
任何提示将不胜感激。提前致谢。
【问题讨论】:
这看起来很像UIWebView random crash at [UIViewAnimationState release]: message sent to deallocated instance 【参考方案1】:大多数时候,EXC_BAD_ACCESS
是通过向已释放的对象发送消息而产生的。虽然这比以前在 ARC 下更难做到,但它仍然是可能的。
KERN_INVALID_ADDRESS
部分只是告诉您,您尝试访问的内存不是应用程序内存空间的一部分,这为已释放对象句柄假设提供了依据。
要调试以前发布的对象(称为“Zombie”对象),请在调试器中打开 NSZombies。在 XCode 7 中...
CMD-SHIFT- 调出管理方案。 选择您的方案 选择Diagnostics
检查Enable Zombie Objects
注意:您只想在调试版本中执行此操作,因为僵尸对象会占用大量内存并损害整体性能。尽管如此,它仍然是一款出色的调试工具。
【讨论】:
以上是关于QuartzCore - iOS8 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
与 ios8、popToViewController 和 UIViewControllerHierarchyInconsistency 崩溃