试图通过崩溃报告调试ios应用程序
在xcode调试阶段,应用程序在模拟器和设备上运行良好,但将应用程序作为临时分发版本运行会立即崩溃。 事故报告的一部分如下试图通过崩溃报告调试ios应用程序,ios,debugging,crash,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
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
如果有任何建议,我将不胜感激。
谢谢。根据提供的代码,在我看来,变量
home\u dbfn
在调用didYouReg
时被释放。如果这种情况只发生在一个特别的发行版中,那么当然很难调试。原因可能是不同设备的不同定时行为。您可以插入assert
语句或其他代码,以确保home\u dbfn
未解除分配,然后要求测试人员再次运行应用程序。哪一行是第224行?您的项目是ARC还是手册?根据你应该尝试的。第224行是这个方法的结束括号下面的一行。(仅此方法和下一个方法之间的空格)。奇怪吗?我正在使用ARC。