【问题标题】:Application Crashing due to EXC_BAD_ACCESS由于 EXC_BAD_ACCESS 导致应用程序崩溃
【发布时间】:2011-02-07 14:22:26
【问题描述】:

异常类型:EXC_BAD_ACCESS (SIGBUS) 异常代码:0x00000000 处的 KERN_PROTECTION_FAILURE 崩溃的线程:0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x00004420 objc_msgSend + 24
1   CoreFoundation                  0x000042a6 CFRetain + 54
2   CoreFoundation                  0x0000a9f0 __CFBasicHashStandardRetainValue + 8
3   CoreFoundation                  0x000054c0 __CFBasicHashAddValue + 100
4   CoreFoundation                  0x00006184 CFBasicHashAddValue + 276
5   CoreFoundation                  0x00006cfe CFDictionaryCreate + 58
6   CoreFoundation                  0x00033d7c -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 1456
7   CoreFoundation                  0x000361bc -[NSDictionary initWithObjectsAndKeys:] + 776
8   iota                            0x0000c4cc 0x1000 + 46284
9   iota                            0x00009282 0x1000 + 33410
10  iota                            0x0000952a 0x1000 + 34090
11  Foundation                      0x00015432 _nsnote_callback + 150
12  CoreFoundation                  0x000271da __CFXNotificationPost_old + 390
13  CoreFoundation                  0x00026e7a _CFXNotificationPostNotification + 122
14  Foundation                      0x0000b9f6 -[NSNotificationCenter postNotification:] + 138
15  Foundation                      0x0007ae02 postQueueNotifications + 258
16  Foundation                      0x0007afae __NSPostIdleQueueNotes + 6
17  CoreFoundation                  0x00031084 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 12
18  CoreFoundation                  0x00030eb2 __CFRunLoopDoObservers + 494
19  CoreFoundation                  0x00028206 __CFRunLoopRun + 934
20  CoreFoundation                  0x00027d74 CFRunLoopRunSpecific + 220
21  CoreFoundation                  0x00027c82 CFRunLoopRunInMode + 54
22  GraphicsServices                0x00004e84 GSEventRunModal + 188
23  UIKit                           0x00004f8c -[UIApplication _run] + 564
24  UIKit                           0x000024cc UIApplicationMain + 964
25  iota                            0x0000533a 0x1000 + 17210
26  iota                            0x000052fc 0x1000 + 17148


NSDictionary *contactNameDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:item, @"contact", sortName, @"contactSortName", compositeName, @"compositeName", nil];

崩溃是随机的。就像它在特定动作的 15 次试验中发生一次。

【问题讨论】:

  • 可以给我们看看相关代码吗?

标签: iphone


【解决方案1】:

KERN_PROTECTION_FAILURE - 表示您的程序正在访问它无权访问的共享内存。这就是为什么 kenel sent 杀死了你的进程。我很确定您的某些指针指向错误的位置。例如

NSObject* obj;

obj 将有垃圾作为它的价值。你必须像这样声明它:

NSObject* obj = nil;

【讨论】:

    【解决方案2】:

    没有更多信息,很难说。通常是因为您尝试访问/插入字典中不再存在的对象。

    【讨论】:

      【解决方案3】:

      检查您是否没有插入不是 NSObject 实例的内容,例如 int 或其他内容。

      【讨论】:

        【解决方案4】:

        鉴于您使用的是 initWithObjectsAndKeys:,请确保您已使用 nil 终止参数列表,因为这是一个可能导致崩溃的常见错误。

        【讨论】:

          猜你喜欢
          • 2012-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-17
          • 2016-08-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多