Random crashes on android [ signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000 ]

I’m getting random crashes in the middle of the game, and I mean random, meaning sometimes it happens, sometimes it doesn’t. It also happens at random points in the game. I think it’s memory related.
This is what Eclipse LogCat shows me. I can’t figure out what it means though.

01-01 22:21:36.367: I/DEBUG(13707): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-01 22:21:36.367: I/DEBUG(13707): Build fingerprint: 'generic/blaze/blaze:2.3.4/GINGERBREAD/6.3.1_user_4107920:user/release-keys'
01-01 22:21:36.367: I/DEBUG(13707): pid: 14078, tid: 14086  >>> com.mycompany.myapp <<<
01-01 22:21:36.367: I/DEBUG(13707): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
01-01 22:21:36.367: I/DEBUG(13707):  r0 00000000  r1 8132219c  r2 8131de40  r3 00000000
01-01 22:21:36.367: I/DEBUG(13707):  r4 8132dc74  r5 afd46480  r6 46a65bb0  r7 00000000
01-01 22:21:36.367: I/DEBUG(13707):  r8 46a65af8  r9 46965f30  10 fffffe84  fp 4446f6cc
01-01 22:21:36.367: I/DEBUG(13707):  ip afd46478  sp 46a65988  lr 00000000  pc 812a13f8  cpsr 40000110
01-01 22:21:36.367: I/DEBUG(13707):  d0  0037ee000044d900  d1  be800000000000ee
01-01 22:21:36.367: I/DEBUG(13707):  d2  3f9d13a100000037  d3  3feec709dc3a0300
01-01 22:21:36.367: I/DEBUG(13707):  d4  3e5c579a00000000  d5  bfbd8065f5bdcf01
01-01 22:21:36.367: I/DEBUG(13707):  d6  3f8a3383546f800e  d7  ffffffff4a454eef
01-01 22:21:36.367: I/DEBUG(13707):  d8  3ff0000000000000  d9  0000000000000000
01-01 22:21:36.367: I/DEBUG(13707):  d10 0000000000000000  d11 0000000000000000
01-01 22:21:36.367: I/DEBUG(13707):  d12 0000000000000000  d13 0000000000000000
01-01 22:21:36.367: I/DEBUG(13707):  d14 0000000000000000  d15 0000000000000000
01-01 22:21:36.367: I/DEBUG(13707):  d16 405b89a3e907c2ea  d17 c05b666680000000
01-01 22:21:36.367: I/DEBUG(13707):  d18 be71e951fb131b69  d19 bf793d9cdd44280b
01-01 22:21:36.367: I/DEBUG(13707):  d20 4000000000000000  d21 3f1154ff66211d93
01-01 22:21:36.367: I/DEBUG(13707):  d22 bebbbafbacad13e7  d23 bfbcf4af1031d000
01-01 22:21:36.367: I/DEBUG(13707):  d24 3e66376972bea4d0  d25 bff0000000000000
01-01 22:21:36.367: I/DEBUG(13707):  d26 3ff8756a00000000  d27 bf793d9cdd442808
01-01 22:21:36.367: I/DEBUG(13707):  d28 c000ec032fadee78  d29 bfbcf4b02ec6efb1
01-01 22:21:36.367: I/DEBUG(13707):  d30 bc460b8a0413c830  d31 be71e951fb100000
01-01 22:21:36.367: I/DEBUG(13707):  scr 80000012
01-01 22:21:36.430: I/DEBUG(13707):          #00  pc 002a13f8  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #01  pc 0012e826  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #02  pc 000f3648  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #03  pc 0010bb6c  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #04  pc 00138774  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #05  pc 0013e1e2  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #06  pc 00165532  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #07  pc 00166d06  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #08  pc 0019f6d4  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.430: I/DEBUG(13707):          #09  pc 00017e34  /system/lib/libdvm.so
01-01 22:21:36.430: I/DEBUG(13707):          #10  pc 000496da  /system/lib/libdvm.so
01-01 22:21:36.430: I/DEBUG(13707):          #11  pc 000296e8  /system/lib/libdvm.so
01-01 22:21:36.430: I/DEBUG(13707): code around pc:
01-01 22:21:36.430: I/DEBUG(13707): 812a13d8 eafffff8 e590c000 e92d45f0 e1a05000 
01-01 22:21:36.430: I/DEBUG(13707): 812a13e8 e51c0004 e24dd02c e51ce008 e1a07003 
01-01 22:21:36.430: I/DEBUG(13707): 812a13f8 e590c000 e28d3014 e3a04000 e58d300c 
01-01 22:21:36.430: I/DEBUG(13707): 812a1408 e1a08002 e085e00e e3a03010 e58d1004 
01-01 22:21:36.430: I/DEBUG(13707): 812a1418 e58de000 e58d5008 e58d3024 e3a02006 
01-01 22:21:36.430: I/DEBUG(13707): code around lr:
01-01 22:21:36.438: I/DEBUG(13707): stack:
01-01 22:21:36.438: I/DEBUG(13707):     46a65948  811a7669  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.438: I/DEBUG(13707):     46a6594c  810f8d59  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.438: I/DEBUG(13707):     46a65950  000540cb  
01-01 22:21:36.438: I/DEBUG(13707):     46a65954  0044f0b8  
01-01 22:21:36.438: I/DEBUG(13707):     46a65958  00000001  
01-01 22:21:36.438: I/DEBUG(13707):     46a6595c  0046c898  
01-01 22:21:36.438: I/DEBUG(13707):     46a65960  00190000  
01-01 22:21:36.438: I/DEBUG(13707):     46a65964  ba6f4bc8  
01-01 22:21:36.438: I/DEBUG(13707):     46a65968  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a6596c  0044f0b8  
01-01 22:21:36.438: I/DEBUG(13707):     46a65970  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a65974  8115d6e9  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.438: I/DEBUG(13707):     46a65978  0044f0b8  
01-01 22:21:36.438: I/DEBUG(13707):     46a6597c  000ed290  
01-01 22:21:36.438: I/DEBUG(13707):     46a65980  df002777  
01-01 22:21:36.438: I/DEBUG(13707):     46a65984  e3a070ad  
01-01 22:21:36.438: I/DEBUG(13707): #00 46a65988  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a6598c  ba6f4bc8  
01-01 22:21:36.438: I/DEBUG(13707):     46a65990  0044f0b8  
01-01 22:21:36.438: I/DEBUG(13707):     46a65994  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a65998  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a6599c  81164abf  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.438: I/DEBUG(13707):     46a659a0  01000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a659a4  ba6f4bc8  
01-01 22:21:36.438: I/DEBUG(13707):     46a659a8  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a659ac  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a659b0  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a659b4  8132dc74  
01-01 22:21:36.438: I/DEBUG(13707):     46a659b8  00000000  
01-01 22:21:36.438: I/DEBUG(13707):     46a659bc  46a65bb0  
01-01 22:21:36.438: I/DEBUG(13707):     46a659c0  46965f38  
01-01 22:21:36.438: I/DEBUG(13707):     46a659c4  46a65af8  
01-01 22:21:36.438: I/DEBUG(13707):     46a659c8  fffffe84  
01-01 22:21:36.438: I/DEBUG(13707):     46a659cc  8112e829  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.438: I/DEBUG(13707): #01 46a659d0  003ad008  
01-01 22:21:36.438: I/DEBUG(13707):     46a659d4  003ad008  
01-01 22:21:36.438: I/DEBUG(13707):     46a659d8  811a6d4d  /data/data/com.mycompany.myapp/lib/libmyapp.so
01-01 22:21:36.438: I/DEBUG(13707):     46a659dc  00000001  
01-01 22:21:36.438: I/DEBUG(13707):     46a659e0  afd46480  
01-01 22:21:36.438: I/DEBUG(13707):     46a659e4  003f9894  
01-01 22:21:36.446: I/DEBUG(13707):     46a659e8  00000006  
01-01 22:21:36.446: I/DEBUG(13707):     46a659ec  00000010  
01-01 22:21:36.446: I/DEBUG(13707):     46a659f0  43d66666  
01-01 22:21:36.446: I/DEBUG(13707):     46a659f4  003f9894  
01-01 22:21:36.446: I/DEBUG(13707):     46a659f8  0044d9f0  
01-01 22:21:36.446: I/DEBUG(13707):     46a659fc  46a65bb0  
01-01 22:21:36.446: I/DEBUG(13707):     46a65a00  46965f38  
01-01 22:21:36.446: I/DEBUG(13707):     46a65a04  46a65af8  
01-01 22:21:36.446: I/DEBUG(13707):     46a65a08  8132dc74  
01-01 22:21:36.446: I/DEBUG(13707):     46a65a0c  810f364d  /data/data/com.mycompany.myapp/lib/libmyapp.so

It also sometimes gives me one of the best error messages there is:
“debugger committed suicide to free the zombies!”

I’m using cocos2d-x 2.0.4, Eclipse Juno, and Kindle Fire for testing.

Anyone else experiencing this?

I made a bit of a progress and I want to share what I did.

When you get errors like this on the LogCat, they are saved on $PROJECT_PATH/obj/local/armeabi where $PROJECT_PATH is the path to your cocos2d-x android project. To symbolicate the messages to something understandable, you can use the ndk-stack tool.

Open up the Terminal (or Cygwin, not sure though) and type in

cd $ANDROID_NDK
adb logcat | ./ndk-stack -sym $PROJECT_PATH/obj/local/armeabi 

where:
$ANDROID_NDK is the path to your android NDK
PROJECT_PATH is the path to your cocos2d-x android project

After that, you will get a stack trace which points to certain files and line number where the crash occurred. Something like this:

********** Crash dump: **********
Build fingerprint: 'generic/blaze/blaze:2.3.4/GINGERBREAD/6.3.1_user_4107920:user/release-keys'
pid: 16346, tid: 16354  >>> com.mycompany.myapp <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
Stack frame #00  pc 002a13f0  /data/data/com.mycompany.myapp/lib/libmyapp.so: Unable to locate routine information for address 2a13f0 in module
Stack frame #01  pc 0012e81e  /data/data/com.mycompany.myapp/lib/libmyapp.so: Routine updateNode in jni/../../Classes/TowerObj.cpp:150
Stack frame #02  pc 000f3648  /data/data/com.mycompany.myapp/lib/libmyapp.so: Routine updateLayer in jni/../../Classes/BuilderLayer.cpp:107
Stack frame #03  pc 0010bb94  /data/data/com.mycompany.myapp/lib/libmyapp.so: Routine updateGame in jni/../../Classes/MainGameLayer.cpp:172

( more here pointing to cocos2d-x classes )

From the dump above, you can see that on Stack frame #01 points to TowerObj.cpp:150, so I can now go to TowerObj.cpp at line 150 and fix stuff.

Hope this helps.

3 Likes

Very useful! Many thanks!

thanks man helped me a lot!

I tried once, but what also did not show

Who can explain to me?

open your game, play it util crash happen. Console will show you last function was called.

Additional information
If your Application.mk define that “armeabi”, that link is correct.
$PROJECT_PATH/obj/local/armeabi

But if you define that armeabi-v7s , the correct one is
$PROJECT_PATH/obj/local/armeabi-v7s

1 Like

Thank you very much, and I also have a question (about logcat out “I/DEBUG”), I use the adb logcat > d: \ log.txt ,after opening It ,it shows like this


, how can I be my android application to print out a similar "I/DEBUG log information?

I am facing a similar problem. My code is running for iOS, but not for android.
Here is the crash dump:

********** Crash dump: ************
Build fingerprint: ‘motorola/condor_retaildsds/condor_umtsds:4.4.4/KXC21.5-40/46:user/release-keys’
pid: 15363, tid: 15388, name: Thread-32990 >>> com.frogcoders.smack.moles <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0b04f856
Stack frame #00 pc 0b04f856
Stack frame #01 pc 004a9ef7 /mnt/asec/com.frogcoders.smack.moles-1/lib/libcocos2dcpp.so (cocos2d::ProtectedNode::cleanup()+34): Routine cocos2d::ProtectedNode::cleanup() at ??:?
Stack frame #02 pc 0049a04b /mnt/asec/com.frogcoders.smack.moles-1/lib/libcocos2dcpp.so (cocos2d::Node::detachChild(cocos2d::Node*, int, bool)+66): Routine cocos2d::Node::detachChild(cocos2d::Node*, int, bool) at ??:?
Stack frame #03 pc 0049a11f /mnt/asec/com.frogcoders.smack.moles-1/lib/libcocos2dcpp.so (cocos2d::Node::removeChild(cocos2d::Node*, bool)+150): Routine cocos2d::Node::removeChild(cocos2d::Node*, bool) at ??:?
Stack frame #04 pc 004980a3 /mnt/asec/com.frogcoders.smack.moles-1/lib/libcocos2dcpp.so (cocos2d::Node::removeFromParentAndCleanup(bool)+24): Routine cocos2d::Node::removeFromParentAndCleanup(bool) at ??:?
Stack frame #05 pc 00498087 /mnt/asec/com.frogcoders.smack.moles-1/lib/libcocos2dcpp.so (cocos2d::Node::removeFromParent()+10): Routine cocos2d::Node::removeFromParent() at ??:?
Stack frame #06 pc 00387bac /mnt/asec/com.frogcoders.smack.moles-1/lib/libcocos2dcpp.so (GameScreen::init()+2280): Routine GameScreen::init() at /Users/admin/Desktop/Cocos2dx/GamePrograming/SmackMoles/SmackMoles/proj.android/jni/…/…/Classes/GameScene.cpp:83