We are using Unity 4.6.6f2 on iOS. Attaching to the game with Xcode shows that the game crashes in ParticleSystemRenderer::UpdateCachedMesh():
ParticleSystemRenderer::UpdateCachedMesh() at ParticleSystemRenderer.cpp:
0x2053c8c: push {r4, r5, r6, r7, lr}
0x2053c8e: add r7, sp, #0xc
0x2053c90: push.w {r8, r10, r11}
0x2053c94: sub sp, #0x8
...
0x2053c9a: mov.w r10, #0x0
...
0x2053d16: str.w r10, [sp, #4]
...
0x2053d42: blx 0x294c5d8 ; symbol stub for: memcpy
0x2053d46: ldr.w r10, [sp, #4] ; The game crashes here
0x2053d4a: b 0x2053db0 ; ParticleSystemRenderer::UpdateCachedMesh() + 292 [inlined] ListElement::GetNext() const at LinkedList.h:71
The game crashed at instruction 0x2053d46 above because [sp, #4] points to address 0x0. However, seems that instructions 0x2053c9a and 0x2053d16 indicates that [sp, #4] always points to address 0x0, so as long as ParticleSystemRenderer::UpdateCachedMeshed() is called, the game always crashed!
Investigating the *this* pointer (i.e. the ParticleSystemRenderer instance) showed that the crash seemed to occur on a ParticleSystem using Mesh Mode, and the mesh lacks a texture. However, I don't know whether it is the cause because we have quite a few such particle systems and meshes, and it's costly to find out all of them.
Also, the game runs fine on Android and Editor. So can anyone, especially Unity developers give me more hint on finding out the crash reason? Thank you very much in advance!
↧