0
我有一个Cocoa应用程序在调试和发布模式下运行,但一旦我在调试模式下运行并且启用了断点,就会崩溃。崩溃发生在应用程序加载完成之前,堆栈跟踪提示KVO问题。不幸的是,由于崩溃发生在我的代码之外,我在调试器中可以看到的是(通用)方法名称和汇编代码。我如何去寻找根本原因?如何调试在主循环之前崩溃的Cocoa应用程序仅在启用了断点时?
堆栈跟踪:
#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
你有一个例外,而不是崩溃。这个异常可能会导致崩溃,但我不确定你是否清楚了差异。是否抛出异常的断点,但在内部被捕获? – 2011-01-23 22:29:09