Crash in libc.memcpy:160 on Android

My game is live, and a small % of players are experiencing crashes. I cannot reproduce any of them, so all I have to go on are traces reported via Crashlytics. I’m looking for any help/leads as to what a crash in memcpy might mean. So far, this crash might only be happening on this one type of device below.

At the time of the crash, the player apparently had:
326.00 MiB Free Space / 79.00 MiB Free RAM

Build with IL2CPP

Crash #1

Fatal Exception: java.lang.Error: FATAL EXCEPTION [UnityMain]
Unity version     : 5.3.7p2
Device model      : samsung GT-N7000
Device fingerprint: samsung/GT-N7000/GT-N7000:4.1.2/JZO54K/N7000XXLT6:user/release-keys


Caused by java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000000c
Build fingerprint: 'samsung/GT-N7000/GT-N7000:4.1.2/JZO54K/N7000XXLT6:user/release-keys'
Revision: '8'
pid: 30018, tid: 30091, name: UnityMain  >>> com.mazzastudios.mergedragons <<<
    r0 76dddec0  r1 0000000c  r2 00000b04  r3 00000000
    r4 00000b24  r5 00000001  r6 5f6b08d0  r7 76dddec0
    r8 60b11da8  r9 00000001  sl 5f6b08d0  fp 00000002
    ip 00000040  sp 5f6b07c8  lr 5879cb14  pc 4004d23c  cpsr 4e2f4b34

       at libc.memcpy(memcpy:160)
       at libGLESv2_mali._gles_gb_setup_input_streams(_gles_gb_setup_input_streams:600)
       at libGLESv2_mali._gles_gb_vs_setup(_gles_gb_vs_setup:108)
       at libGLESv2_mali._gles_gb_draw_indexed_range(_gles_gb_draw_indexed_range:136)
       at libGLESv2_mali._gles2_draw_elements(_gles2_draw_elements:296)
       at libGLESv2_mali.glDrawElements(glDrawElements:76)
       at libunity.004b26f8(Unknown Source)
       at libunity.002e3b94(Unknown Source)
       at libunity.002e3bec(Unknown Source)
       at libunity.002b48e4(Unknown Source)
       at libunity.0016c458(Unknown Source)
       at libunity.00173270(Unknown Source)
       at libunity.0017449c(Unknown Source)
       at libunity.001784e0(Unknown Source)
       at libunity.00111894(Unknown Source)
       at libunity.00114198(Unknown Source)
       at libunity.0012f848(Unknown Source)
       at libunity.0038ea28(Unknown Source)
       at libunity.0038fde8(Unknown Source)
       at libunity.004dde00(Unknown Source)
       at libunity.004e32f4(Unknown Source)
       at libdvm.dvmPlatformInvoke(dvmPlatformInvoke:112)
       at libdvm.dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)(dvmCallJNIMethod:394)
       at libdvm.00027360(Unknown Source)
       at libdvm.dvmInterpret(Thread*, Method const*, JValue*)(dvmInterpret:180)
       at libdvm.dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)(dvmCallMethodV:272)
       at libdvm.dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)(dvmCallMethod:20)
       at libdvm.000544d3(Unknown Source)
       at libc.__thread_entry(__thread_entry:48)
       at libc.pthread_create(pthread_create:172)
       at Unknown.0001bbec(Unknown Source)

Also, here’s an additional crash that may be related, on a different device, in a memcpy_base:

Fatal Exception: java.lang.Error: FATAL EXCEPTION [main]
Unity version     : 5.3.2f1
Device model      : LENOVO LenovoA3300-GV
Device fingerprint: Lenovo/A3300-GV/A3300-GV:4.4.2/KOT49H/A3300GV_A442_01_44_140924_ROW:user/release-keys


Caused by java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
Build fingerprint: 'Lenovo/A3300-GV/A3300-GV:4.4.2/KOT49H/A3300GV_A442_01_44_140924_ROW:user/release-keys'
Revision: '0'
pid: 11172, tid: 11245, name: UnityPreload  >>> com.mazzastudios.mergedragons <<<
    r0 62693bf8  r1 00000000  r2 0000000c  r3 00000008
    r4 00000000  r5 00000000  r6 7a352cd0  r7 00000000
    r8 00000000  r9 00000014  sl 00000000  fp 00000000
    ip 00000000  sp 62693bb0  lr 60608374  pc 401043ac  cpsr 33412f48

       at libc.__memcpy_base(__memcpy_base:80)
       at libunity.001c9370(Unknown Source)
       at libunity.0040622c(Unknown Source)
       at libunity.00404e68(Unknown Source)
       at libunity.004003bc(Unknown Source)
       at libunity.003dca08(Unknown Source)
       at libunity.003db3d0(Unknown Source)
       at libunity.003db320(Unknown Source)
       at libunity.004354dc(Unknown Source)
       at libc.__thread_entry(__thread_entry:72)

You should check out my post on “decoding Android crashes”:

1 Like