只有在调试时,iOS App才会在启动时崩溃 - 不是在模拟器中或在正常设备应用程序启动期间

时间:2013-01-18 07:27:00

标签: ios xcode debugging exc-bad-access

我正在尝试确定在测试我的应用时我看到的导致崩溃的原因。现在,每当我尝试从连接了iphone的xcode运行应用程序时,它会抛出EXEC_BAD_ACCESS(代码= 1,地址= 0x1)。

应用程序崩溃但我没有在崩溃日志中看到新条目。我尝试在启用Zombies的情况下运行但我遇到了同样的崩溃。

奇怪的是,如果我使用模拟器进行调试,通过点击其图标在设备上运行应用程序,甚至在仪器中,我都不会收到此错误。任何建议和/或解释都将非常感谢。

以下是我在Xcode中看到的内容:

libobjc.A.dylib`objc_msgSend:
0x36acb5c0:  teq.w  r0, #0
0x36acb5c4:  beq    0x36acb606                ; objc_msgSend + 70
0x36acb5c6:  push.w {r3, r4}

**0x36acb5ca:  ldr    r4, [r0]**  < ------ This is where the app gets caught up EXEC_BAD_ACCESS (code=1, address=0x1)

0x36acb5cc:  lsr.w  r9, r1, #2
0x36acb5d0:  ldr    r3, [r4, #8]
0x36acb5d2:  add.w  r3, r3, #8
0x36acb5d6:  ldr    r12, [r3, #-8]
0x36acb5da:  and.w  r9, r9, r12
0x36acb5de:  ldr.w  r4, [r3, r9, lsl #2]
0x36acb5e2:  teq.w  r4, #0
0x36acb5e6:  add.w  r9, r9, #1
0x36acb5ea:  beq    0x36acb600                ; objc_msgSend + 64
0x36acb5ec:  ldr.w  r12, [r4]
0x36acb5f0:  teq.w  r1, r12
0x36acb5f4:  bne    0x36acb5d6                ; objc_msgSend + 22
0x36acb5f6:  ldr.w  r12, [r4, #8]
0x36acb5fa:  pop.w  {r3, r4}
0x36acb5fe:  bx     r12
0x36acb600:  pop.w  {r3, r4}
0x36acb604:  b      0x36acb620                ; objc_msgSend_uncached
0x36acb606:  mov.w  r1, #0
0x36acb60a:  bx     lr
0x36acb60c:  nop    
0x36acb60e:  nop    
0x36acb610:  nop    
0x36acb612:  nop    
0x36acb614:  nop    
0x36acb616:  nop    
0x36acb618:  nop    
0x36acb61a:  nop    
0x36acb61c:  nop    
0x36acb61e:  nop 

2 个答案:

答案 0 :(得分:0)

尝试在cmd-alt-b菜单中启用所有内存调试选项:zombies,scribble等。并设置异常断点。

答案 1 :(得分:0)

如有疑问,请重启设备。现在工作正常。无法隔离导致错误的原因。