未显示错误时调试 GDB 中断

Posted

技术标签:

【中文标题】未显示错误时调试 GDB 中断【英文标题】:debugging GDB Interrupt when no error is shown 【发布时间】:2011-01-24 22:14:03 【问题描述】:

我遇到了一个问题,我在调试中运行我的应用程序时在特定点收到 GDB 中断,但调试器中没有显示错误消息。

有问题的代码是:

- (void)AddContactViewControllerDidFinish:(AddContactViewController *)controller 
 // Save contact & requirement
 NSManagedObjectContext *context = [self managedObjectContext];
 Contact *contactObj = [NSEntityDescription insertNewObjectForEntityForName:@"Contact" inManagedObjectContext:context];

 [contactObj setValue:[[[controller.textFields objectAtIndex:0] objectAtIndex:0] text] forKey:@"Name"];
 [contactObj setValue:[[[controller.textFields objectAtIndex:0] objectAtIndex:1] text] forKey:@"PhoneBH"];
 [contactObj setValue:[[[controller.textFields objectAtIndex:0] objectAtIndex:2] text] forKey:@"PhoneAH"];
 [contactObj setValue:[[[controller.textFields objectAtIndex:0] objectAtIndex:3] text] forKey:@"Mobile"];
 [contactObj setValue:[[[controller.textFields objectAtIndex:0] objectAtIndex:4] text] forKey:@"Email"];
 UISwitch *switcho = [[controller.textFields objectAtIndex:0] objectAtIndex:5];
 [contactObj setValue:[NSNumber numberWithBool:switcho.on] forKey:@"PropertyAlerts"];
 NSDate *LastModified = [[NSDate alloc] init];
 [contactObj setValue:LastModified forKey:@"LastModified"];
 [LastModified release];
 [openhome addContactObject:contactObj];
 [contactObj addOpenhomeObject:openhome];

这里的最后一行是我收到中断的地方。基本上我在这里所做的是准备使用 Core Data 保存的contactObj,并且当在模式中显示的视图控制器中点击完成按钮时调用此委托方法。

所以我的问题是,由于没有显示错误我该如何查找导致中断的原因?

【问题讨论】:

【参考方案1】:

尝试启用仪器和 NSZombie。有时 XCode 行为怪异,只是停止执行而不显示错误,但工具应该更详细。

【讨论】:

以上是关于未显示错误时调试 GDB 中断的主要内容,如果未能解决你的问题,请参考以下文章

打印时调试断言错误

运行错误时调试方法

在 Mingw 中构建 GDB 错误,配置:错误:未找到增强的 curses 库;禁用 TUI

如何在展开可选值时调试“nil 的致命错误”?

启动时调试应用程序

如何在Golang中运行exec.Command时调试“exit status 1”错误