【问题标题】:Trying to debug ios app via crash report尝试通过崩溃报告调试 ios 应用程序
【发布时间】:2013-04-19 14:46:08
【问题描述】:

在 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 我会很感激任何建议。 谢谢。

【问题讨论】:

  • 第224行是哪一行?
  • 你的项目是 ARC 还是手册?根据this question,你应该试试FMDB
  • 第 224 行是此方法的右括号下方的行。 (只是这个方法和下一个方法之间的空白)。这很奇怪吗?我正在使用 ARC。

标签: ios debugging crash


【解决方案1】:

根据提供的代码,在我看来,变量 home_dbfn 在调用 didYouReg 时被释放。如果这仅发生在 ad-hoc 发行版中,那么这当然很难调试。原因可能是例如不同的时序行为不同的设备。您可以插入 assert 语句或其他代码以确保 home_dbfn 未被释放,然后让您的 beta 测试人员再次运行该应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2012-05-10
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多