首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何诊断KERN_PROTECTION_FAILURE

如何诊断KERN_PROTECTION_FAILURE
EN

Stack Overflow用户
提问于 2010-08-05 10:30:43
回答 1查看 13.1K关注 0票数 8

我得到了一个有趣的崩溃,我似乎永远不能在模拟器上复制:

代码语言:javascript
复制
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以及堆栈日志记录。运行了静态分析器,以确保所有对象都被正确保留和释放,尽管我有一种感觉,它仍然与保留/释放相关。

有什么想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-07 08:01:40

您必须取消引用空指针,否则不会发生此崩溃。Static Analyzer是一个很好的工具,可以在你做错的事情上得到提示。然而,它没有发现错误并不意味着你的程序是没有bug的。此外,打开僵尸并不总是有帮助的。有时这只是一个简单的小疏忽。

模拟器没有显示这个问题的事实并不能说明太多问题。归根结底,它是一台拥有不同处理器和不同架构的不同机器。有时,错误代码在一个平台上运行良好,但在另一个平台上崩溃。

您应该重新符号化您的堆栈跟踪,并仔细查看它崩溃的函数。如果你需要更多的帮助,最好在这里发布一些代码。

另一个提示:这些问题通常会通过多个方法传播。分析器一次只能看到一种方法。在进入crashing方法之前,您应该看看对象发生了什么情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3411346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档