QuartzCore - crash in iOS8

After releasing a new version of my iOS app, I often get the following crash.

Failure: WebThread EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x80000012

This is one of the annoying crashes when the stack trace did not give any clues as to where the crash occurred or what could lead to the crash. The main thing is that this crash exists only in iOS8. Find the stack trace below:

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 

Any hint would be greatly appreciated. Thanks in advance.

+7
objective-c iphone ios8 crash
source share
1 answer

In most cases, EXC_BAD_ACCESS obtained from sending a message to an already released object. Although it is even more difficult than before in ARC, it is possible.

The KERN_INVALID_ADDRESS part simply tells you that the memory you were trying to access is not part of your application memory space, which confirms the credibility of the hypothesis with the released object.

To debug previously released objects (called "Zombies" objects), enable NSZombies in the debugger. In Xcode 7 ...

  • CMD-SHIFT- for creating control schemes.
  • Choose your scheme
  • Select Diagnostics
  • Check Enable Zombie Objects

NOTE. . You only want to do this on debug builds, as zombie objects consume a ton of memory and damage overall performance. However, it is a great debugging tool.

0
source share

All Articles