Ios 知道什么';这里坏了吗?XCODE
前言:我正在使用跨平台引擎(GameMaker Studio)制作一个应用程序。所以我的目标C不是非常流利 在测试HeyZap的ad sdk时,发生了以下情况: 我将如何开始调试它?这件事发生在我关闭一个视频广告之后。虽然不是每次都会发生,只是有时候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>:
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中编写的源代码中的一个问题。如果我的代码有问题,看起来你没有启用异常断点。您可能希望启用它并重试。它应该停在导致碰撞的点上,而不是在组件的深处。并不总是有帮助,但总是值得一试。