在CA :: release_objects中调试/重现EXC_BAD_ACCESS崩溃

时间:2015-01-08 03:13:39

标签: ios cocoa-touch core-animation exc-bad-access

我使用Crashlytics来跟踪崩溃,我看到下面的堆栈跟踪发生了一些崩溃:

崩溃:com.apple.main-thread EXC_BAD_ACCESS KERN_INVALID_ADDRESS位于0xf8560b1c

Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x37a20b66 objc_msgSend + 5
1  CoreFoundation                 0x2d5f8e8d CFRelease + 560
2  QuartzCore                     0x2fad2965 CA::release_objects(X::List<void const*>*) + 16
3  QuartzCore                     0x2fad7dcf -[CAAnimation dealloc] + 54
4  libobjc.A.dylib                0x37a30b0b objc_object::sidetable_release(bool) + 174
5  CoreFoundation                 0x2d5f8e8d CFRelease + 560
6  QuartzCore                     0x2fada419 CA::Layer::run_animation_callbacks(void*) + 240
7  libdispatch.dylib              0x37f0a0af _dispatch_client_callout + 22
8  libdispatch.dylib              0x37f0c9a9 _dispatch_main_queue_callback_4CF + 268
9  CoreFoundation                 0x2d6935b1 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
10 CoreFoundation                 0x2d691e7d __CFRunLoopRun + 1308
11 CoreFoundation                 0x2d5fc471 CFRunLoopRunSpecific + 524
12 CoreFoundation                 0x2d5fc253 CFRunLoopRunInMode + 106
13 GraphicsServices               0x323362eb GSEventRunModal + 138
14 UIKit                          0x2feb1845 UIApplicationMain + 1136

看起来CFRelease被调用某个对象两次。问题是我不知道哪个动画导致崩溃。日志不是很有用,因为崩溃发生在不同的地方。我如何调试/重现此崩溃或至少记录一些东西,以便我知道哪个对象被释放两次。

0 个答案:

没有答案