当我崩溃(出于我理解的原因;这不是问题)当我尝试做一些 Cocoa 不能接受的事情时,例如调用不存在的方法或尝试将 nil 插入集合时,调试器会显示从 main() 到 __pthread_kill 的堆栈,没有任何实际崩溃代码运行时存在的帧。有一个名为 objc_exception_rethrow 的帧(从 main 开始的第 9 个)。这使我相信 Cocoa Touch 正在尝试做某事或其他事情来恢复所有异常并优雅地死去或其他事情。但是,在调试时无法真正使用 Xcode4 的调试工具来调查调用堆栈帧,甚至无法查看我的代码在哪里崩溃,这是非常令人恼火的。
是否有某种方法可以使 objc_exception_rethrow 行为不发生,并在引发异常时立即崩溃?也许有一个调试设置使它更早(在正确的时间)崩溃?(我还没有弄乱这个项目中的任何构建设置。)