AndEnginePhysicsBox2DExtension
AndEnginePhysicsBox2DExtension copied to clipboard
Fatal signal 11 (SIGSEGV) when using Vector2[] array with several entries
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)
What thread are you from this from?
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.
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.
I have the same problem.