Just spent some time ... crashing without realizing it. This is a classic:
Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x00000010
This leads me to a memory issue by accessing the wrong 0x10 address
My concern is that I have a crash report and a stack trace that are different:
Failure report sent by user (successfully marked with a symbol):
Thread 0 Crashed: 0 libobjc.A.dylib 0x000027d8 objc_msgSend + 16 1 UIKit 0x0005e9d2 -[UIViewAnimationState animationDidStop:finished:] + 54 2 QuartzCore 0x0002d8c2 run_animation_callbacks(double, void*) + 286 3 QuartzCore 0x0002d764 CA::timer_callback(__CFRunLoopTimer*, void*) + 116 4 CoreFoundation 0x000567f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 8 5 CoreFoundation 0x000562a6 __CFRunLoopDoTimer + 854 6 CoreFoundation 0x0002779e __CFRunLoopRun + 1082 7 CoreFoundation 0x00027270 CFRunLoopRunSpecific + 224 8 CoreFoundation 0x00027178 CFRunLoopRunInMode + 52 9 GraphicsServices 0x000045ec GSEventRunModal + 108 10 GraphicsServices 0x00004698 GSEventRun + 56 11 UIKit 0x0000411c -[UIApplication _run] + 396 12 UIKit 0x00002128 UIApplicationMain + 664 13 MyApp 0x00003158 main (main.m:13) 14 MyApp 0x00003120 0x1000 + 8480
Alarm stack trace (bound in real time by an exception handler)
0 MyApp 0x000d79c3 0x0 + 883139 1 MyApp 0x000d790b 0x0 + 882955 2 libSystem.B.dylib 0x302765d3 _sigtramp + 42 3 UIKit 0x31eab9d9 -[UIViewAnimationState animationDidStop:finished:] + 60 4 QuartzCore 0x33a178c9 _ZL23run_animation_callbacksdPv + 292 5 QuartzCore 0x33a1776b _ZN2CAL14timer_callbackEP16__CFRunLoopTimerPv + 122 6 CoreFoundation 0x3084e7fb __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14 7 CoreFoundation 0x3084e2ad __CFRunLoopDoTimer + 860 8 CoreFoundation 0x3081f7a5 __CFRunLoopRun + 1088 9 CoreFoundation 0x3081f277 CFRunLoopRunSpecific + 230 10 CoreFoundation 0x3081f17f CFRunLoopRunInMode + 58 11 GraphicsServices 0x31e445f3 GSEventRunModal + 114 12 GraphicsServices 0x31e4469f GSEventRun + 62 13 UIKit 0x31e51123 -[UIApplication _run] + 402 14 UIKit 0x31e4f12f UIApplicationMain + 670 15 MyApp 0x0000315f 0x0 + 12639 16 MyApp 0x00003128 0x0 + 12584
Both are different, and the stack trace indicates a failure in my code, but at the addresses I can neither symbolize nor identify. I think the crash report indicates that the message was sent to the released instance ... Probably related to using:
+ (void)setAnimationDelegate:(id)delegate + (void)setAnimationDidStopSelector:(SEL)selector
So, here are (finally!) My questions:
- What explains the differences between magazines? (libobjc.A vs libSystem.B ??)
- Does SIGBUS come from my code or from UIKit?
- How can I decrypt the top stack trace addresses (0x000d79 ??, which atos do not allow)
- Is this what I think is the problem with the animation not ending? similar to this> How to disable a delegate in a UIView setAnimationDelegate: call?
- AFAIK, setAnimationDelegate must be kept by the delegate ... Someone who needs to confirm?
EDIT : I can't use NSZombiesEnabled , this is a NSZombiesEnabled report from a published application, a crash that I could not reproduce in the development environment. I just have these logs for diagnosis.
source share