Hello!
Am I the only Unity3+android alpha tester who is having really unstable application due to some Galvik VM crashes occuring right after gvm garbage collection?
The log looks like this:
D/Unity ( 859): ----------------------------------------
D/Unity ( 859): Android Unity internal profiler stats:
D/Unity ( 859): cpu-player> min: 17.0 max: 44.5 avg: 23.5
D/Unity ( 859): cpu-ogles-drv> min: 5.8 max: 12.7 avg: 9.7
D/Unity ( 859): cpu-present> min: 1.6 max: 4.3 avg: 2.1
D/Unity ( 859): frametime> min: 30.5 max: 52.8 avg: 35.3
D/Unity ( 859): draw-call #> min: 27 max: 30 avg: 28 | batched: 28
D/Unity ( 859): tris #> min: 10553 max: 10569 avg: 10561 | batched: 248
D/Unity ( 859): verts #> min: 5097 max: 5125 avg: 5109 | batched: 181
D/Unity ( 859): player-detail> physx: 0.6 animation: 0.5 culling 0.0 skinning: 13.6 batching: 0.1 render: 4.4 fixed-update-count: 0 … 1
D/Unity ( 859): mono-scripts> update: 1.1 fixedUpdate: 2.7 coroutines: 0.0
D/Unity ( 859): mono-memory> used heap: 1036288 allocated heap: 3796992 max number of collections: 1 collection total duration: 6.2
D/Unity ( 859): ----------------------------------------
D/dalvikvm( 859): GC_FOR_MALLOC freed 2722 objects / 504232 bytes in 36ms
I/DEBUG ( 56): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 56): Build fingerprint: ‘google/passion/passion/mahimahi:2.2/FRF91/43546:user/release-keys’
I/DEBUG ( 56): signal 11 (SIGSEGV), fault addr 00000007
…
I/DEBUG ( 56): #00 pc 0007ab04 /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): #01 pc 00083148 /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): #02 pc 0005f8ae /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): #03 pc 0005f96e /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): #04 pc 00062080 /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): #05 pc 0005a04c /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): #06 pc 00014cbe /system/lib/egl/libGLESv1_CM_adreno200.so
I/DEBUG ( 56): #07 pc 00008df4 /system/lib/egl/libGLESv1_CM_adreno200.so
I/DEBUG ( 56): #08 pc 0018416c /data/data/myapp/lib/libunity.so
I/DEBUG ( 56): #09 pc 00166a3c /data/data/myapp/lib/libunity.so
I/DEBUG ( 56): #10 pc 000c66c8 /data/data/myapp/lib/libunity.so
I/DEBUG ( 56):
I/DEBUG ( 56): code around pc:
I/DEBUG ( 56): 8207aae4 68462000 f8dc6556 68413000 e00c6599
I/DEBUG ( 56): 8207aaf4 463e4839 68185823 edf8f7de 6846e060
I/DEBUG ( 56): 8207ab04 c008f8d6 d21a45ac 280068c0 e059d1f7
I/DEBUG ( 56): 8207ab14 f8544932 f8dee001 6d962000 b10b6833
I/DEBUG ( 56): 8207ab24 61436198 f7ff4631 2800fd4b 6843d050
I/DEBUG ( 56):
I/DEBUG ( 56): code around lr:
I/DEBUG ( 56): 00000e3c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 56): 00000e4c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 56): 00000e5c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 56): 00000e6c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 56): 00000e7c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 56):
I/DEBUG ( 56): stack:
I/DEBUG ( 56): 48a36418 afd43920 /system/lib/libc.so
I/DEBUG ( 56): 48a3641c afd0fb2c /system/lib/libc.so
I/DEBUG ( 56): 48a36420 00249cd8 [heap]
I/DEBUG ( 56): 48a36424 afd43920 /system/lib/libc.so
I/DEBUG ( 56): 48a36428 03624000
I/DEBUG ( 56): 48a3642c afd1046c /system/lib/libc.so
I/DEBUG ( 56): 48a36430 821af680 /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): 48a36434 00000680
I/DEBUG ( 56): 48a36438 00000b94
I/DEBUG ( 56): 48a3643c 821b298c /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): 48a36440 48a36578
I/DEBUG ( 56): 48a36444 00000000
I/DEBUG ( 56): 48a36448 0000098c
I/DEBUG ( 56): 48a3644c a2e048f4 /system/lib/libgsl.so
I/DEBUG ( 56): 48a36450 e3a070ad
I/DEBUG ( 56): 48a36454 ef9000ad
I/DEBUG ( 56): #00 48a36458 00249588 [heap]
I/DEBUG ( 56): 48a3645c 00249588 [heap]
I/DEBUG ( 56): 48a36460 00000034
I/DEBUG ( 56): 48a36464 00253c10 [heap]
I/DEBUG ( 56): 48a36468 00902c30 [heap]
I/DEBUG ( 56): 48a3646c 00000020
I/DEBUG ( 56): 48a36470 00249588 [heap]
I/DEBUG ( 56): 48a36474 8208314d /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): #01 48a36478 00000002
I/DEBUG ( 56): 48a3647c 820833af /system/lib/egl/libGLESv2_adreno200.so
I/DEBUG ( 56): 48a36480 00000034
I/DEBUG ( 56): 48a36484 00000000
I/DEBUG ( 56): 48a36488 00000000
I/DEBUG ( 56): 48a3648c 00126520 [heap]
I/DEBUG ( 56): 48a36490 00253c10 [heap]
I/DEBUG ( 56): 48a36494 00902c30 [heap]
I/DEBUG ( 56): 48a36498 00000000
I/DEBUG ( 56): 48a3649c 8205f8b3 /system/lib/egl/libGLESv2_adreno200.so
I/BootReceiver( 85): Copying /data/tombstones/tombstone_02 to DropBox (SYSTEM_TOMBSTONE)
D/Zygote ( 58): Process 859 terminated by signal (11)
I guess that the GC was finished since it printed out the duration of it, but it seems some corruption occured afterwards and caused the game to crash. This only happens once in a while. By activating sounds in game, I get the crash much sooner though.
I’d just like to know if this is occuring to other developpers… x_x’
Thanks!
To answer my own question, the crash was initially caused by calling a non-existant foreign function at runtime.
The function was a obj-c function used in our iphone version, which was stripped from our android codebase, thus resulting in the crash.
Just writing this in case it can help someone else out.