Objective c 使用iOS模拟器调试应用程序崩溃&;XCode 4在main()函数中暂停,而不是崩溃源

Objective c 使用iOS模拟器调试应用程序崩溃&;XCode 4在main()函数中暂停,而不是崩溃源,objective-c,xcode,ios-simulator,Objective C,Xcode,Ios Simulator,可能重复: Xcode 4的调试器似乎不会在任何接近iOS模拟器崩溃原因的地方停止执行。假设我在代码中引入了一个bug,可能是一个数组越界错误,如下所示: NSMutableArray * test = [[NSMutableArray alloc] initWithCapacity:5]; [test insertObject:@"Hello" atIndex:10]; 当应用程序不可避免地崩溃时,我被带到main.m中的main函数,调用堆栈中没有任何内容(“按线程”视图),以帮助我找到

可能重复:

Xcode 4的调试器似乎不会在任何接近iOS模拟器崩溃原因的地方停止执行。假设我在代码中引入了一个bug,可能是一个数组越界错误,如下所示:

NSMutableArray * test = [[NSMutableArray alloc] initWithCapacity:5];
[test insertObject:@"Hello" atIndex:10];
当应用程序不可避免地崩溃时,我被带到
main.m
中的
main
函数,调用堆栈中没有任何内容(“按线程”视图),以帮助我找到出错的地方

在构建属性中是否缺少调试设置?这是雪豹上的Xcode 4.2,如果有帮助的话


感谢根据此问题的已接受答案在断点导航器中添加异常断点--修复了此问题。

转到断点面板,添加左下角,单击+号并添加“异常断点”

例外情况:所有
休息:投掷


在大多数情况下,这应该可以解决问题。

Josh,这确实是一个重复。谢谢我已经投票结束了我自己的问题。没有用。在所有情况下,如何使这个苹果IDE与其他IDE一样工作?我的意思是,调试所有代码非常重要,而不仅仅是一些代码/@亨利克兰德森:再试一次,这很有效。我一直在使用它。它不会停在[localvariable autorelease]EXC\u BAD\u访问错误的正确行。”再试一次?添加这样一个断点很容易,事实上我认为没有人会失败。但是,断点可能无法在正确的行停止,这对于这种类型的错误来说无疑是如此。@HenrikErlandsson:当然可以。自动释放在调用时不作为释放。它标记要发布的数据,以及稍后要做的事情。因此,崩溃的发生不是因为自动释放,而是因为系统在事件循环结束时对数据调用了释放。在单个事件循环中运行的不同方法的相同数据上放置3个自动释放,您将无法知道哪一个是崩溃的原因。因此,您不能要求调试器比您更了解它。如果你称之为释放,那是另一回事,因为它会立即起作用。