7

我有几个来自 crittercism 的 sigsegv 崩溃,但我不太确定如何开始调试。我唯一的代码行是从崩溃线程开始的主调用。

从 crittercism 复制崩溃线程的堆栈跟踪:

原因:

2012 年 9 月 24 日下午 2:38:14 SIGSEGV 主要 (main.m:11)

堆:

0   
0 libobjc.A.dylib 0x356265b0 objc_msgSend + 15
1   
1 UIKit 0x3861c313 + 1310
2   
2 UIKit 0x386337cf + 206
3   
3 UIKit 0x385ef80b + 258
4   
4 石英核心 0x34f56d63 + 214
5   
5 石英核心 0x34f56901 + 460
6   
6 石英核心 0x34f57835 + 16
7   
7 石英核心 0x34f5721b + 238
8   
8 石英核心 0x34f57029 + 316
9   
9 UIKit 0x386786e5 + 572
10  
10 UIKit 0x386784a3 + 66
11  
11 UIKit 0x38677391 + 1464
12  
12 UIKit 0x385ed1ef + 2458
13  
13 UIKit 0x385ec6d5 + 72
14  
14 UIKit 0x385ec123 + 6154
15  
15 图形服务 0x3779f5a3 + 590
16  
16 核心基础 0x372f0683 + 14
17  
17 核心基础 0x372efe9 + 212
18  
18 核心基础 0x372eecb7 + 646
19  
19 核心基础 0x37261ebd CFRunLoopRunSpecific + 356
20  
20 核心基础 0x37261d49 CFRunLoopRunInMode + 104
21  
21 图形服务 0x3779e2eb GSEventRunModal + 74
22  
22 UIKit 0x38640301 UIApplicationMain + 1120
23  
23 MyApp 0x35bf 主 (main.m:11)
4

2 回答 2

0

首先,您需要“符号化”崩溃日志。有很多网页可以指导您。

由于此堆栈以 objc_msgSend 结束,因此最可能的原因是悬空指针。

要调试这些,我建议使用 NSZombies。如果您在模拟器上进行测试,您可以尝试“Guard malloc”。

于 2013-02-20T08:15:42.527 回答
0

此崩溃是由于在指向已释放对象的指针上调用方法引起的。这是您代码中某个非常常见的引用计数错误,它包含在 UIKit 元素上。但是,在实践中您应该做的是将您的 .DSYM 文件上传到 crittercism。作为自动构建过程的一部分,它可以通过网站或通过Web API 调用手动完成。

于 2013-06-19T06:34:13.773 回答