Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS objc_msgSend crash, with no report or warning given

I am testing my app out, pushing it pretty hard, and I'm getting it to crash (black screen, image doesn't save, drops back to springboard). However, I get no crash reports logged in the console. When I test using profiler all I get is a message saying the target died, but it gives no clues.

In the organiser I got the device crash logs which gives me this which I believe is telling me I'm sending a message to something I've released (objc-msgSend + 22)? Am I on the right track here?

---

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x576e6f69
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libobjc.A.dylib                 0x34f8ef7e objc_msgSend + 22
1   CoreFoundation                  0x371d7e90 CFRetain + 76
2   CoreFoundation                  0x371e1b74 +[__NSArrayI __new::] + 48
3   CoreFoundation                  0x371e1a8e -[__NSPlaceholderArray initWithObjects:count:] + 294
4   CoreFoundation                  0x371e9394 -[NSArray initWithArray:range:copyItems:] + 756
5   CoreFoundation                  0x371fcd5a +[NSArray arrayWithArray:] + 66
6   AVFoundation                    0x335da766 -[AVCaptureSession outputs] + 146
7   AVFoundation                    0x335de26e -[AVCaptureSession _doDidStop:] + 38
8   AVFoundation                    0x335dfaea -[AVCaptureSession _handleNotification:payload:] + 2002
9   AVFoundation                    0x335d8af6 avcaptureSessionFigRecorderNotification + 1202
10  AVFoundation                    0x335fafd8 AVCMNotificationDispatcherCallback + 184
11  CoreFoundation                  0x3725b7c8 __CFNotificationCenterAddObserver_block_invoke_0 + 116
12  CoreFoundation                  0x3725b540 ___CFXNotificationPost_block_invoke_0 + 64
13  CoreFoundation                  0x371e7090 _CFXNotificationPost + 1400
14  CoreFoundation                  0x371ef1c6 CFNotificationCenterPostNotification + 102
15  CoreMedia                       0x366eeeb0 CMNotificationCenterPostNotification + 112
16  Celestial                       0x374b08a2 FigRecorderRemoteCallbacksServer_NotificationIsPending + 478
17  Celestial                       0x374b06ba _XNotificationIsPending + 54
18  Celestial                       0x374b0678 figrecordercallbacks_server + 92
19  Celestial                       0x374af642 remrec_ClientPortCallBack + 146
20  CoreFoundation                  0x37258f0c __CFMachPortPerform + 356
21  CoreFoundation                  0x3726351c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32
22  CoreFoundation                  0x372634be __CFRunLoopDoSource1 + 134
23  CoreFoundation                  0x3726230c __CFRunLoopRun + 1364
24  CoreFoundation                  0x371e549e CFRunLoopRunSpecific + 294
25  CoreFoundation                  0x371e5366 CFRunLoopRunInMode + 98
26  AVFoundation                    0x335ef4d0 -[AVRunLoopCondition _waitInMode:untilDate:] + 348
27  AVFoundation                    0x335ef36c -[AVRunLoopCondition waitUntilDate:inMode:] + 20
28  AVFoundation                    0x335dc13a -[AVCaptureSession _stopPreviewing] + 438
29  AVFoundation                    0x335dc2d6 -[AVCaptureSession _setRunning:] + 166
30  AVFoundation                    0x335dbe42 -[AVCaptureSession stopRunning] + 274
31  zApp                            0x0007e1ce 0x79000 + 20942
32  UIKit                           0x30fa5b8e -[UIViewController _setViewAppearState:isAnimating:] + 138
33  UIKit                           0x30fff8a8 -[UIViewController beginAppearanceTransition:animated:] + 184
34  UIKit                           0x310468be -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] + 4098
35  UIKit                           0x31045360 -[UIViewController presentViewController:withTransition:completion:] + 3116
36  UIKit                           0x310a06a0 -[UIViewController presentModalViewController:animated:] + 24
37  CoreFoundation                  0x371e93f6 -[NSObject performSelector:withObject:withObject:] + 46
38  UIKit                           0x30f7ee00 -[UIApplication sendAction:to:from:forEvent:] + 56
39  UIKit                           0x30f7edbc -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 24
40  UIKit                           0x30f7ed9a -[UIControl sendAction:to:forEvent:] + 38
41  UIKit                           0x30f7eb0a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 486
42  UIKit                           0x30f7f442 -[UIControl touchesEnded:withEvent:] + 470
43  UIKit                           0x30f7d924 -[UIWindow _sendTouchesForEvent:] + 312
44  UIKit                           0x30f7d312 -[UIWindow sendEvent:] + 374
45  UIKit                           0x30f6368e -[UIApplication sendEvent:] + 350
46  UIKit                           0x30f62f34 _UIApplicationHandleEvent + 5820
47  GraphicsServices                0x339a5224 PurpleEventCallback + 876
48  CoreFoundation                  0x3726351c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32
49  CoreFoundation                  0x372634be __CFRunLoopDoSource1 + 134
50  CoreFoundation                  0x3726230c __CFRunLoopRun + 1364
51  CoreFoundation                  0x371e549e CFRunLoopRunSpecific + 294
52  CoreFoundation                  0x371e5366 CFRunLoopRunInMode + 98
53  GraphicsServices                0x339a4432 GSEventRunModal + 130
54  UIKit                           0x30f91cce UIApplicationMain + 1074
55  zApp                            0x0007ffa6 0x79000 + 28582
56  zApp                            0x0007a680 0x79000 + 5760
like image 392
mrEmpty Avatar asked Jun 05 '12 10:06

mrEmpty


2 Answers

  1. If you suspect that you are overreleasing something, try running your app with NSZombie enabled. (how to enable NSZombie)

  2. You can set exception breakpoint to print backtrace in console.

like image 160
Kreiri Avatar answered Oct 10 '22 19:10

Kreiri


sometimes that happens when you set an object as an observer for notifications, like

[[NSNotificationCenter defaultCenter] addObserver //details

and don't remove it from the observers list when it's released.
the system tries to send a message to it, and the app crashes because it's not there.

try adding

[[NSNotificationCenter defaultCenter] removeObserver:self];

in the dealloc function.
(even if you're working with arc, create a dealloc function, and write that in it).

good luck

like image 21
eiran Avatar answered Oct 10 '22 20:10

eiran