Как отладить приложение Какао, которое аварийно завершает работу перед главным циклом, только когда точки останова включены? - PullRequest
0 голосов
/ 23 января 2011

У меня есть приложение Какао, которое работает при запуске как в режиме отладки, так и в режиме выпуска, но вылетает, как только я запускаю его в режиме отладки с включенными точками останова.Сбой происходит до того, как приложение завершило загрузку, и трассировка стека указывает на проблему с KVO.К сожалению, поскольку сбой происходит вне моего кода, все, что я вижу в отладчике, это (общие) имена методов и код сборки.Как мне найти основную причину?

Трассировка стека:

#0   0x98dde4e6 in objc_exception_throw
#1   0x943443e8 in +[NSException raise:format:arguments:]
#2   0x9434435a in +[NSException raise:format:]
#3   0x9092bc49 in -[NSObject(NSKeyValueObserverRegistration) _removeObserver:forProperty:]
#4   0x9092b864 in -[NSObject(NSKeyValueObserverRegistration) removeObserver:forKeyPath:]
#5   0x938a8a63 in -[NSController removeObserver:forKeyPath:]
#6   0x0037807a in dyld_stub_write
#7   0x00378b0e in dyld_stub_write
#8   0x003774d6 in dyld_stub_write
#9   0x003775fe in dyld_stub_write
#10  0x936b8c3b in -[NSCustomObject nibInstantiate]
#11  0x936b8a49 in -[NSIBObjectData instantiateObject:]
#12  0x936b7d4e in -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:]
#13  0x936b61f4 in loadNib
#14  0x936b55ed in +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:]
#15  0x936b54fe in +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:]
#16  0x936b5449 in +[NSBundle(NSNibLoading) loadNibNamed:owner:]
#17  0x936b224d in NSApplicationMain
#18  0x00001f68 in main at main.m:13

1 Ответ

1 голос
/ 23 января 2011

Посмотрите на дно стека. Это код загрузки пера. Учитывая KVO на вершине стека, мое первое предположение было бы, что вы подключили что-то к розетке или через привязки, но не правильно определили свойство, к которому вы подключились. Убедитесь, что вы включили методы доступа для любых свойств, которые вы определяете.

...