Sounds like you're inadvertently depending on the order of loading somehow. Are you setting up all your bindings in awakeFromNib:? Or do you have any bindings (set in IB) which refer to something the controller object may have to load first? Just a thought.
On Oct 3, 2011, at 8:29 PM, Seth Willits wrote: > > I've been receiving reports of this rare but persistent crash over the past > few years, and I've never been able to reproduce it or figure out what's > causing it. > > They often look exactly like the stack trace below, but sometimes it's > different, happening at a different time. The thing they all have in common > is it's a crash when notifying observers in a binding when loading a nib. > > > > Exception Type: EXC_BAD_ACCESS (SIGSEGV) > Exception Codes: KERN_INVALID_ADDRESS at 0x0000000008000028 > Crashed Thread: 0 Dispatch queue: com.apple.main-thread > > Application Specific Information: > objc_msgSend() selector name: respondsToSelector: > > > objc_msgSend_vtable5 + 16 > NSKeyValueNotifyObserver + 76 > -[NSObject(NSKeyValueObservingPrivate) > _notifyObserversForKeyPath:change:] + 991 > -[NSController _notifyObserversForKeyPath:change:] + 218 > -[NSObjectController setContent:] + 369 > -[AQConnTabController awakeFromNib] + 976 > -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1515 > -[NSNib instantiateNibWithExternalNameTable:] + 564 > -[NSNib instantiateNibWithOwner:topLevelObjects:] + 233 > -[NSViewController loadView] + 180 > -[NSViewController view] + 38 > -[AQConnTabController initWithNibName:bundle:windowController:] + 801 > -[AQConnWindowController newTab:] + 56 > -[NSWindowController _windowDidLoad] + 538 > -[NSWindowController window] + 112 > -[NSWindowController showWindow:] + 47 > -[AQController newConnectionWindow:] + 72 > -[AQController applicationOpenUntitledFile:] + 18 > -[NSApplication _doOpenUntitled] + 211 > -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] > + 101 > -[NSAppleEventManager > dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 360 > _NSAppleEventManagerGenericHandler + 114 > aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned > char*) + 162 > dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 32 > aeProcessAppleEvent + 210 > AEProcessAppleEvent + 48 > _DPSNextEvent + 1191 > -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155 > -[NSApplication run] + 395 > NSApplicationMain + 364 > start + 52 > > > > In this case [AQConnTabController awakeFromNib] calls setContent: on a object > controller that AQConnTabController creates. The weird thing about that > leading to a crash is that the object controller isn't hooked up to > _anything_ yet. I'm certain it has nothing to do with that specific object > controller. Other crashes have a similar trace at the top: > > > objc_msgSend_vtable5 + 24 > NSKeyValueNotifyObserver + 61 > -[NSObject(NSKeyValueObservingPrivate) > _notifyObserversForKeyPath:change:] + 756 > -[NSController _notifyObserversForKeyPath:change:] + 206 > -[NSObjectController setContent:] + 395 > -[NSObjectDetailBinder refreshDetailContent] + 230 > -[NSObject(NSKeyValueBindingCreation) > bind:toObject:withKeyPath:options:] + 591 > -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1079 > -[NSNib instantiateNibWithExternalNameTable:] + 606 > -[NSNib instantiateNibWithOwner:topLevelObjects:] + 251 > -[NSViewController loadView] + 186 > > > The thing they all have in common is that a nib is being loaded, which does > some stuff with bindings, and then there's a crash. The bindings aren't even > related in terms of what's connected to what. > > > What I believe is going on, is that somehow a deallocated object is still an > observer somewhere, and at any point when the KVO system needs to notify > somebody of any KVO message, it crashes when it tries to send a message to > that deallocated object. The trouble is, I have _no_ clue how to find this. > I've tried for endless hours over the years scouring my code for any whiff of > something being done wrong and I've never found it. I swear the code > everywhere I've looked is fine, the analyzer doesn't point out any mistakes, > Valgrind is fine, I'm confident I don't have any memory smashers etc.... What > can I do to figure this out? Anybody have any tricky ideas? > > I'm hoping somebody has seen this stack trace before and knows what kind of > subtle bug causes it. :\ > > > > Thanks, > > > -- > Seth Willits > > > > _______________________________________________ > > Cocoa-dev mailing list ([email protected]) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/wsquires%40satx.rr.com > > This email sent to [email protected] _______________________________________________ Cocoa-dev mailing list ([email protected]) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
