我得到了一个有趣的崩溃,我似乎永远不能在模拟器上复制:
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000008
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x3212e86c 0x3212c000 + 10348
1 StockTwits 0x00016b06 0x1000 + 88838
2 Foundation 0x30718422 0x306db000 + 250914
3 Foundation 0x307183a4 0x306db000 + 250788
4 CFNetwork 0x30933e74 0x30923000 + 69236
5 CFNetwork 0x30927b70 0x30923000 + 19312
6 CFNetwork 0x30927e62 0x30923000 + 20066
7 CFNetwork 0x30927a60 0x30923000 + 19040
8 CFNetwork 0x30927a12 0x30923000 + 18962
9 CFNetwork 0x30927990 0x30923000 + 18832
10 CFNetwork 0x3092790e 0x30923000 + 18702
11 CoreFoundation 0x30352a86 0x302e1000 + 465542
12 CoreFoundation 0x30354768 0x302e1000 + 472936
13 CoreFoundation 0x30355504 0x302e1000 + 476420
14 CoreFoundation 0x302fe8e4 0x302e1000 + 121060
15 CoreFoundation 0x302fe7ec 0x302e1000 + 120812
16 GraphicsServices 0x31a776e8 0x31a74000 + 14056
17 GraphicsServices 0x31a77794 0x31a74000 + 14228
18 UIKit 0x323272a0 0x32321000 + 25248
19 UIKit 0x32325e10 0x32321000 + 19984
20 StockTwits 0x00002fd4 0x1000 + 8148
21 StockTwits 0x00002fa4 0x1000 + 8100我启用了NSZombies以及堆栈日志记录。运行了静态分析器,以确保所有对象都被正确保留和释放,尽管我有一种感觉,它仍然与保留/释放相关。
有什么想法?
发布于 2010-08-07 08:01:40
您必须取消引用空指针,否则不会发生此崩溃。Static Analyzer是一个很好的工具,可以在你做错的事情上得到提示。然而,它没有发现错误并不意味着你的程序是没有bug的。此外,打开僵尸并不总是有帮助的。有时这只是一个简单的小疏忽。
模拟器没有显示这个问题的事实并不能说明太多问题。归根结底,它是一台拥有不同处理器和不同架构的不同机器。有时,错误代码在一个平台上运行良好,但在另一个平台上崩溃。
您应该重新符号化您的堆栈跟踪,并仔细查看它崩溃的函数。如果你需要更多的帮助,最好在这里发布一些代码。
另一个提示:这些问题通常会通过多个方法传播。分析器一次只能看到一种方法。在进入crashing方法之前,您应该看看对象发生了什么情况。
https://stackoverflow.com/questions/3411346
复制相似问题