Ios 知道什么';这里坏了吗?XCODE

Ios 知道什么';这里坏了吗?XCODE,ios,objective-c,xcode,exc-bad-access,heyzap,Ios,Objective C,Xcode,Exc Bad Access,Heyzap,前言:我正在使用跨平台引擎(GameMaker Studio)制作一个应用程序。所以我的目标C不是非常流利 在测试HeyZap的ad sdk时,发生了以下情况: 我将如何开始调试它?这件事发生在我关闭一个视频广告之后。虽然不是每次都会发生,只是有时候 Starific_vGIT`+[HZUtils dateWithoutTimeFromDate:]: 0x3491c4 <+0>: push {r4, r5, r6, r7, lr} 0x3491c6 <+2>:

前言:我正在使用跨平台引擎(GameMaker Studio)制作一个应用程序。所以我的目标C不是非常流利

在测试HeyZap的ad sdk时,发生了以下情况:

我将如何开始调试它?这件事发生在我关闭一个视频广告之后。虽然不是每次都会发生,只是有时候

Starific_vGIT`+[HZUtils dateWithoutTimeFromDate:]:
0x3491c4 <+0>:   push   {r4, r5, r6, r7, lr}
0x3491c6 <+2>:   add    r7, sp, #0xc
0x3491c8 <+4>:   push.w {r8, r11}
0x3491cc <+8>:   sub    sp, #0xc
0x3491ce <+10>:  mov.w  r8, #0x0
0x3491d2 <+14>:  cbz    r2, 0x34924c              ; <+136> at HZUtils.m:265
0x3491d4 <+16>:  movw   r0, #0x4664
0x3491d8 <+20>:  movt   r0, #0x5b
0x3491dc <+24>:  movw   r1, #0xbd6e
0x3491e0 <+28>:  movt   r1, #0x5b
0x3491e4 <+32>:  add    r0, pc
0x3491e6 <+34>:  add    r1, pc
0x3491e8 <+36>:  ldr    r4, [r0]
0x3491ea <+38>:  mov    r0, r2
0x3491ec <+40>:  ldr    r5, [r1]
0x3491ee <+42>:  blx    0x6c18cc                  ; symbol stub for: objc_retain
0x3491f2 <+46>:  mov    r11, r0
0x3491f4 <+48>:  mov    r0, r5
0x3491f6 <+50>:  mov    r1, r4
0x3491f8 <+52>:  blx    0x6c184c                  ; symbol stub for: objc_msgSend
0x3491fc <+56>:  mov    r7, r7
0x3491fe <+58>:  blx    0x6c18fc                  ; symbol stub for: objc_retainAutoreleasedReturnValue
0x349202 <+62>:  mov    r5, r0
0x349204 <+64>:  movw   r0, #0x463e
0x349208 <+68>:  movt   r0, #0x5b
0x34920c <+72>:  add    r3, sp, #0x8
0x34920e <+74>:  add    r0, pc
0x349210 <+76>:  movs   r2, #0x10
0x349212 <+78>:  str.w  r8, [sp, #0x8]
0x349216 <+82>:  ldr    r1, [r0]
0x349218 <+84>:  mov    r0, r5
0x34921a <+86>:  stm.w  sp, {r8, r11}
0x34921e <+90>:  blx    0x6c184c                  ; symbol stub for: objc_msgSend
0x349222 <+94>:  mov    r6, r0
0x349224 <+96>:  mov    r0, r11
0x349226 <+98>:  blx    0x6c18ac                  ; symbol stub for: objc_release
0x34922a <+102>: ldr    r0, [sp, #0x8]
0x34922c <+104>: blx    0x6c18cc                  ; symbol stub for: objc_retain
0x349230 <+108>: mov    r4, r0
0x349232 <+110>: mov    r0, r5
0x349234 <+112>: blx    0x6c18ac                  ; symbol stub for: objc_release
0x349238 <+116>: tst.w  r6, #0xff
0x34923c <+120>: beq    0x349246                  ; <+130> at HZUtils.m:265
0x34923e <+122>: mov    r0, r4
0x349240 <+124>: blx    0x6c18cc                  ; symbol stub for: objc_retain
0x349244 <+128>: mov    r8, r0
0x349246 <+130>: mov    r0, r4
0x349248 <+132>: blx    0x6c18ac                  ; symbol stub for: objc_release
0x34924c <+136>: mov    r0, r8
0x34924e <+138>: add    sp, #0xc
0x349250 <+140>: pop.w  {r8, r11}
0x349254 <+144>: pop.w  {r4, r5, r6, r7, lr}
0x349258 <+148>: b.w    0x6bf67c                  ; objc_autoreleaseReturnValue$shim
Starific_vGIT`+[HZUtils datewithout timefromdate:]:
0x3491c4:推送{r4,r5,r6,r7,lr}
0x3491c6:添加r7,sp,#0xc
0x3491c8:push.w{r8,r11}
0x3491cc:子sp,#0xc
0x3491ce:mov.w r8,#0x0
0x3491d2:cbz r2,0x34924c;在HZUtils.m:265
0x3491d4:movw r0,#0x4664
0x3491d8:movt r0,#0x5b
0x3491dc:movw r1,#0xbd6e
0x3491e0:movt r1,#0x5b
0x3491e4:添加r0,pc
0x3491e6:添加r1,pc
0x3491e8:ldr r4[r0]
0x3491ea:mov r0,r2
0x3491ec:ldr r5[r1]
0x3491ee:blx 0x6c18cc;用于:objc_retain的符号存根
0x3491f2:mov r11,r0
0x3491f4:mov r0,r5
0x3491f6:mov r1,r4
0x3491f8:blx 0x6c184c;用于:objc_msgSend的符号存根
0x3491fc:mov r7,r7
0x3491fe:blx 0x6c18fc;用于以下对象的符号存根:objc_retainAutoreleasedReturnValue
0x349202:mov r5,r0
0x349204:movw r0,#0x463e
0x349208:movt r0,#0x5b
0x34920c:添加r3,sp,#0x8
0x34920e:添加r0,pc
0x349210:movs r2,#0x10
0x349212:str.w r8[sp,#0x8]
0x349216:ldr r1[r0]
0x349218:mov r0,r5
0x34921a:stm.w sp,{r8,r11}
0x34921e:blx 0x6c184c;用于:objc_msgSend的符号存根
0x349222:mov r6,r0
0x349224:mov r0,r11
0x349226:blx 0x6c18ac;用于:objc_发布的符号存根
0x34922a:ldr r0[sp,#0x8]
0x34922c:blx 0x6c18cc;用于:objc_retain的符号存根
0x349230:mov r4,r0
0x349232:mov r0,r5
0x349234:blx 0x6c18ac;用于:objc_发布的符号存根
0x349238:tst.w r6,#0xff
0x34923c:beq 0x349246;在HZUtils.m:265
0x34923e:mov r0,r4
0x349240:blx 0x6c18cc;用于:objc_retain的符号存根
0x349244:mov r8,r0
0x349246:mov r0,r4
0x349248:blx 0x6c18ac;用于:objc_发布的符号存根
0x34924c:mov r0,r8
0x34924e:添加sp,#0xc
0x349250:pop.w{r8,r11}
0x349254:pop.w{r4,r5,r6,r7,lr}
0x349258:b.w 0x6bf67c;objc_自动释放返回值$shim
更新: 我已经运行了NSZombieEnabled,这是我得到的:
注意,碰撞发生在不同的地方。这个地方似乎每次都在变化。它似乎暗示指向字符串对象的指针不正确?接下来我将如何调试它?

好的,奇怪的是,问题竟然是重复的文件引用。XCode分析器发现了这个问题,我让XCode解决了这个问题。不再出现随机崩溃。

显示崩溃发生的代码。R7----------帧指针。通常指向以前保存的堆栈帧和保存的链接寄存器。此处您尝试将r7的值移动到无效的r7寄存器,因此首先分析代码……。然后根据需要进行修改。如果使用本地对象而不是全局对象,则可能会发生此问题。可以。我将运行xcode分析,看看结果如何。这些都是生成的代码,因此会使事情复杂化。我必须追溯到GameMaker Studio中编写的源代码中的一个问题。如果我的代码有问题,看起来你没有启用异常断点。您可能希望启用它并重试。它应该停在导致碰撞的点上,而不是在组件的深处。并不总是有帮助,但总是值得一试。