尝试通过崩溃报告调试ios应用程序

时间:2013-04-19 14:46:09

标签: ios debugging crash

在xcode调试阶段,应用程序在模拟器和设备上运行良好,但是作为临时分发版本运行应用程序,它会立即崩溃。 部分崩溃报告如下......

Exception Type:  EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x50000010 Crashed Thread:  0 
Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libobjc.A.dylib                 0x37859f2a objc_release + 10
1   Simple Science Tab              0x000d3036 -[ssFirstViewController didYouReg]      (ssFirstViewController.m:224)
2   Simple Science Tab              0x000d2450 -[ssFirstViewController viewDidLoad] (ssFirstViewController.m:45)

报告中引用的方法如下所示....

-(void) didYouReg {
NSString *dbtn = @"stage";

BWDB *db2;

NSDictionary * row = nil;
if ((db2 = [[BWDB alloc] initWithDBFilename:home_dbfn andTableName: dbtn])) {

    for (row in [db2 getQuery:@"SELECT reg_yes FROM reg"]) {

        ans= row[@"reg_yes"];

    }

} else {
  //  message(@"db failed to init");
}
[db2 closeDB];

}

我一直在阅读很多帖子并尝试在xcode中启用僵尸功能,但这似乎没有显示任何内容。我正在使用xcode 4.6.1 我很感激任何建议。 感谢。

1 个答案:

答案 0 :(得分:0)

从提供的代码中可以看出,在调用home_dbfn时,变量didYouReg被释放。如果只在ad-hoc发行版中发生这种情况,那么这当然很难调试。原因可能是例如不同的时序行为和不同的设备。您可以插入assert语句或其他代码,以确保home_dbfn未被解除分配,然后让您的Beta测试人员再次运行该应用。