AndEnginePhysicsBox2DExtension icon indicating copy to clipboard operation
AndEnginePhysicsBox2DExtension copied to clipboard

Fatal signal 11 (SIGSEGV) when using Vector2[] array with several entries

Open ocram opened this issue 11 years ago • 4 comments

When I use the following piece of code to create a custom Body shape for my player, the application crashes with "Fatal signal 11 (SIGSEGV)" (see error message after method).

But when I remove just 3 Vector entries from the array, the application does not crash.

private static Body createPlayerBody(final PhysicsWorld pPhysicsWorld, final IEntity pEntity, final BodyType pBodyType, final FixtureDef pFixtureDef) {
    if (mPlayerBody == null) {
        final float width = pEntity.getWidth() / PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT;
        final float height = pEntity.getHeight() / PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT;
        final Vector2[] vertices = {
                new Vector2(-0.06771f*width, -0.23047f*height),
                new Vector2(-0.07292f*width, -0.48047f*height),
                new Vector2(+0.14062f*width, -0.48438f*height),
                new Vector2(+0.11979f*width, -0.23438f*height),
                new Vector2(+0.46875f*width, -0.02344f*height),
                new Vector2(+0.34896f*width, +0.36328f*height),
                new Vector2(-0.06771f*width, +0.48828f*height),
                new Vector2(-0.40104f*width, +0.32422f*height),
                new Vector2(-0.40625f*width, -0.04688f*height)
        };
        mPlayerBody = PhysicsFactory.createPolygonBody(pPhysicsWorld, pEntity, vertices, pBodyType, pFixtureDef);
    }
    return mPlayerBody;
}

Error message:

07-06 03:03:28.050: I/power(188): *** release_dvfs_lock : lockType : 1 
07-06 03:03:28.050: D/PowerManagerService(188): releaseDVFSLockLocked : all DVFS_MIN_LIMIT are released 
07-06 03:03:28.050: W/ActivityManager(188): mDVFSLock.release()
07-06 03:03:28.573: E/Watchdog(188): !@Sync 479
07-06 03:03:29.011: W/PowerManagerService(188): Timer 0x7->0x3|0x3
07-06 03:03:29.011: I/PowerManagerService(188): Ulight 7->3|0
07-06 03:03:29.011: E/lights(188): write_int failed to open /sys/class/sec/sec_touchkey/brightness
07-06 03:03:29.011: D/PowerManagerService(188): setLightBrightness : mButtonLight : 0
07-06 03:03:29.863: D/dalvikvm(18328): Trying to load lib /data/data/com.my.package/lib/libandenginephysicsbox2dextension.so 0x41278a20
07-06 03:03:29.870: D/dalvikvm(18328): Added shared lib /data/data/com.my.package/lib/libandenginephysicsbox2dextension.so 0x41278a20
07-06 03:03:29.870: D/dalvikvm(18328): No JNI_OnLoad found in /data/data/com.my.package/lib/libandenginephysicsbox2dextension.so 0x41278a20, skipping init
07-06 03:03:29.933: D/dalvikvm(18328): GC_EXPLICIT freed 266K, 6% free 8178K/8647K, paused 1ms+3ms
07-06 03:03:29.972: D/dalvikvm(18328): GC_EXPLICIT freed 132K, 6% free 8176K/8647K, paused 1ms+2ms
07-06 03:03:29.988: A/libc(18328): Fatal signal 11 (SIGSEGV) at 0xfa99a744 (code=1)
07-06 03:03:30.495: I/DEBUG(96): SET
07-06 03:03:30.495: I/DEBUG(96): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-06 03:03:30.495: I/DEBUG(96): Build fingerprint: 'samsung/espresso10wifixx/espresso10wifi:4.0.3/IML74K/P5110XWALD2:user/release-keys'
07-06 03:03:30.495: I/DEBUG(96): pid: 18328, tid: 18383  >>> com.my.package <<<
07-06 03:03:30.495: I/DEBUG(96): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr fa99a744
07-06 03:03:30.495: I/DEBUG(96):  r0 5f98ea34  r1 00811728  r2 bf4311fa  r3 00811228
07-06 03:03:30.495: I/DEBUG(96):  r4 00811250  r5 00000000  r6 00000004  r7 bf4311f9
07-06 03:03:30.495: I/DEBUG(96):  r8 00000000  r9 5c3a1df8  10 00000001  fp 00000000
07-06 03:03:30.495: I/DEBUG(96):  ip fa99a740  sp 5f98e9e0  lr 5d0fe348  pc 5d0fdfac  cpsr 20000010
07-06 03:03:30.495: I/DEBUG(96):  d0  3f800000ffc00000  d1  8000000000000000
07-06 03:03:30.495: I/DEBUG(96):  d2  3f8000003f800000  d3  8000000000000000
07-06 03:03:30.495: I/DEBUG(96):  d4  bf7ff8003f800000  d5  417a00003c800688
07-06 03:03:30.495: I/DEBUG(96):  d6  bf6c0054be50014f  d7  7fc00000ffc00000
07-06 03:03:30.495: I/DEBUG(96):  d8  4195c000417a0000  d9  7fc00000ffc00000
07-06 03:03:30.495: I/DEBUG(96):  d10 0000000000000000  d11 0000000000000000
07-06 03:03:30.495: I/DEBUG(96):  d12 0000000000000000  d13 0000000000000000
07-06 03:03:30.495: I/DEBUG(96):  d14 0000000000000000  d15 0000000000000000
07-06 03:03:30.495: I/DEBUG(96):  d16 0000000700000001  d17 4133000000000000
07-06 03:03:30.495: I/DEBUG(96):  d18 3fe62e42fee00000  d19 3fc3333340000000
07-06 03:03:30.495: I/DEBUG(96):  d20 3fe3333340000000  d21 3fd3333340000000
07-06 03:03:30.495: I/DEBUG(96):  d22 3fd51eb860000000  d23 40e01d100abe0000
07-06 03:03:30.495: I/DEBUG(96):  d24 40dd4c2013880000  d25 40ed4c1013880000
07-06 03:03:30.495: I/DEBUG(96):  d26 40cd4c4013880000  d27 3fe0000000000000
07-06 03:03:30.495: I/DEBUG(96):  d28 0000000000000000  d29 3ff0000000000000
07-06 03:03:30.495: I/DEBUG(96):  d30 3ff0000000000000  d31 3ff0000000000000
07-06 03:03:30.495: I/DEBUG(96):  scr 20000013
07-06 03:03:30.652: I/DEBUG(96):          #00  pc 0000efac  /data/data/com.my.package/lib/libandenginephysicsbox2dextension.so
07-06 03:03:30.652: I/DEBUG(96):          #01  lr 5d0fe348  /data/data/com.my.package/lib/libandenginephysicsbox2dextension.so
07-06 03:03:30.652: I/DEBUG(96): code around pc:
07-06 03:03:30.652: I/DEBUG(96): 5d0fdf8c ee377a49 ee777aa8 ee067a44 ee777ae9  Iz7..zw.Dz...zw.
07-06 03:03:30.652: I/DEBUG(96): 5d0fdf9c ee467a43 ee067ae3 ee467ae2 ee270a24  CzF..z...zF.$.'.
07-06 03:03:30.652: I/DEBUG(96): 5d0fdfac ed9c7a01 ee674a04 ee070a85 eddc7a02  .z...Jg......z..
07-06 03:03:30.652: I/DEBUG(96): 5d0fdfbc ee275a03 ee474aa3 ee075aa2 ee246a82  .Z'..JG..Z...j$.
07-06 03:03:30.652: I/DEBUG(96): 5d0fdfcc ee645aa1 ee056a01 ee455a20 da00000e  .Zd..j.. ZE.....
07-06 03:03:30.652: I/DEBUG(96): code around lr:
07-06 03:03:30.652: I/DEBUG(96): 5d0fe328 e8bd85f0 e28d0098 e1a01007 e1a0200a  ............. ..
07-06 03:03:30.652: I/DEBUG(96): 5d0fe338 e1a03006 e520407c e58d8000 ebfffea2  .0..|@ .........
07-06 03:03:30.659: I/DEBUG(96): 5d0fe348 eeb48ac0 eef1fa10 4afffff2 eddf7af1  ...........J.z..
07-06 03:03:30.659: I/DEBUG(96): 5d0fe358 ed9f7af1 ee487a87 eeb40ae7 eef1fa10  .z...zH.........
07-06 03:03:30.659: I/DEBUG(96): 5d0fe368 ca0000f0 e59d3018 e1a01007 edd87a00  .....0.......z..
07-06 03:03:30.659: I/DEBUG(96): memory map around addr fa99a744:
07-06 03:03:30.659: I/DEBUG(96): be966000-be987000 [stack]
07-06 03:03:30.659: I/DEBUG(96): (no map for address)
07-06 03:03:30.659: I/DEBUG(96): ffff0000-ffff1000 [vectors]
07-06 03:03:30.659: I/DEBUG(96): stack:
07-06 03:03:30.659: I/DEBUG(96):     5f98e9a0  3cea0ea0  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9a4  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9a8  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9ac  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9b0  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9b4  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9b8  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9bc  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9c0  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9c4  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9c8  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9cc  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9d0  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9d4  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9d8  df0027ad  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9dc  00000000  
07-06 03:03:30.659: I/DEBUG(96): #00 5f98e9e0  3ca3d70a  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9e4  ffc00000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9e8  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9ec  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9f0  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9f4  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9f8  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98e9fc  0082bd40  [heap]
07-06 03:03:30.659: I/DEBUG(96):     5f98ea00  00811228  [heap]
07-06 03:03:30.659: I/DEBUG(96):     5f98ea04  00811728  [heap]
07-06 03:03:30.659: I/DEBUG(96):     5f98ea08  00811194  [heap]
07-06 03:03:30.659: I/DEBUG(96):     5f98ea0c  5c3a1df8  
07-06 03:03:30.659: I/DEBUG(96):     5f98ea10  00811694  [heap]
07-06 03:03:30.659: I/DEBUG(96):     5f98ea14  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98ea18  00811194  [heap]
07-06 03:03:30.659: I/DEBUG(96):     5f98ea1c  00000000  
07-06 03:03:30.659: I/DEBUG(96):     5f98ea20  5710e7c8  /dev/ashmem/dalvik-LinearAlloc (deleted)
07-06 03:03:30.659: I/DEBUG(96):     5f98ea24  00000001  
07-06 03:03:33.691: I/DEBUG(96): EET
07-06 03:03:33.691: I/DEBUG(96): !@dumpstate -k -t -n -z -d -o /data/log/dumpstate_app_native -m 18328
07-06 03:03:33.691: I/BootReceiver(188): Copying /data/tombstones/tombstone_01 to DropBox (SYSTEM_TOMBSTONE)
07-06 03:03:33.698: I/dumpstate(18390): begin
07-06 03:03:33.777: D/dalvikvm(188): GC_FOR_ALLOC freed 341K, 58% free 14782K/35143K, paused 87ms
07-06 03:03:38.113: D/VoldCmdListener(93): asec list
07-06 03:03:38.113: D/VoldCmdListener(93): CommandListener::AsecCmd::runCommand -> -- 
07-06 03:03:39.159: I/dumpstate(18390): done
07-06 03:03:39.245: D/KeyguardViewMediator(188): setHidden false
07-06 03:03:39.245: I/WindowManager(188): WIN DEATH: Window{419272e0 com.my.package/com.my.package.GameScreenSingle paused=false}
07-06 03:03:39.245: W/WindowManager(188): Force-removing child win Window{41c7a4d8 SurfaceView paused=false} from container Window{419272e0 com.my.package/com.my.package.GameScreenSingle paused=false}
07-06 03:03:39.245: I/ActivityManager(188): Process com.my.package (pid 18328) has died.
07-06 03:03:39.245: W/ActivityManager(188): Force removing ActivityRecord{413cf348 com.my.package/.GameScreenSingle}: app died, no saved state
07-06 03:03:39.253: W/InputDispatcher(188): channel ~ Consumer closed input channel or an error occurred.  events=0x8
07-06 03:03:39.253: E/InputDispatcher(188): channel ~ Channel is unrecoverably broken and will be disposed!
07-06 03:03:39.253: D/KeyguardViewMediator(188): setHidden false
07-06 03:03:39.253: W/InputDispatcher(188): Attempted to unregister already unregistered input channel '41910448 com.my.package/com.my.package.StartScreen (server)'
07-06 03:03:39.253: D/KeyguardViewMediator(188): setHidden false
07-06 03:03:39.253: D/PowerManagerService(188): releaseWakeLockLocked flags=0x0 tag=KEEP_SCREEN_ON_FLAG myUID=1000 myPID=188 myTID=401
07-06 03:03:39.253: W/WindowManager(188): Failed looking up window
07-06 03:03:39.253: W/WindowManager(188): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@412b2df8 does not exist
07-06 03:03:39.253: W/WindowManager(188):   at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7719)
07-06 03:03:39.253: W/WindowManager(188):   at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7710)
07-06 03:03:39.253: W/WindowManager(188):   at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1530)
07-06 03:03:39.253: W/WindowManager(188):   at android.os.BinderProxy.sendDeathNotice(Binder.java:417)
07-06 03:03:39.253: W/WindowManager(188):   at dalvik.system.NativeStart.run(Native Method)
07-06 03:03:39.253: I/WindowManager(188): WIN DEATH: null
07-06 03:03:39.253: I/WindowManager(188): WINDOW DIED Window{41910448 com.my.package/com.my.package.StartScreen paused=false}
07-06 03:03:39.261: I/power(188): *** acquire_dvfs_lock : lockType : 1  freq : 1008000 
07-06 03:03:39.261: W/WindowManager(188): Failed looking up window
07-06 03:03:39.261: W/WindowManager(188): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@4172d9a8 does not exist
07-06 03:03:39.261: W/WindowManager(188):   at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7719)
07-06 03:03:39.261: W/WindowManager(188):   at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7710)
07-06 03:03:39.261: W/WindowManager(188):   at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1530)
07-06 03:03:39.261: W/WindowManager(188):   at android.os.BinderProxy.sendDeathNotice(Binder.java:417)
07-06 03:03:39.261: W/WindowManager(188):   at com.android.server.SystemServer.init1(Native Method)
07-06 03:03:39.261: W/WindowManager(188):   at com.android.server.SystemServer.main(SystemServer.java:991)
07-06 03:03:39.261: W/WindowManager(188):   at java.lang.reflect.Method.invokeNative(Native Method)
07-06 03:03:39.261: W/WindowManager(188):   at java.lang.reflect.Method.invoke(Method.java:511)
07-06 03:03:39.261: W/WindowManager(188):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
07-06 03:03:39.261: W/WindowManager(188):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
07-06 03:03:39.261: W/WindowManager(188):   at dalvik.system.NativeStart.main(Native Method)
07-06 03:03:39.261: I/WindowManager(188): WIN DEATH: null
07-06 03:03:39.261: D/PowerManagerService(188): acquireDVFSLockLocked : type : DVFS_MIN_LIMIT  frequency : 1008000  uid : 1000  pid : 188  tag : ActivityManager
07-06 03:03:39.261: W/ActivityManager(188): mDVFSLock.acquire()
07-06 03:03:39.277: D/dalvikvm(18423): Late-enabling CheckJNI
07-06 03:03:39.308: D/Zygote(99): Process 18328 terminated by signal (11)

ocram avatar Jul 06 '13 01:07 ocram

What thread are you from this from?

nicolasgramlich avatar Jul 06 '13 01:07 nicolasgramlich

I'm calling this in the constructor of my custom game scene class extending Scene. The complete structure of my application and its scenes is similar to this: http://www.matim-dev.com/full-game-tutorial---part-1.html

I've created the sprite:

mPlayerSprite = new Sprite(120, BASELINE_Y+3, mResourcesManager.mPlayerTextureRegion, mVertexManager);

And after that, I'm creating the body:

Body body = createPlayerBody(mPhysicsWorld, mPlayerSprite, BodyType.DynamicBody, PhysicsFactory.createFixtureDef(10.0f, 0.0f, 0.0f));

This is where the function cited in the question (createPlayerBody) gets called.

ocram avatar Jul 06 '13 02:07 ocram

The entity is a TiledSprite, by the way, if that helps. And the problem is definitely due to the size of the Vector2[] array. I've just tested changing the size from 6 items to 9 items - and the application did crash again. Same error.

ocram avatar Jul 16 '13 13:07 ocram

I have the same problem.

Vineg avatar Sep 26 '13 20:09 Vineg