mgerhardy / caveexpress

CaveExpress is a classic 2D platformer with physics-based gameplay and dozens of levels. CavePacker is a Sokoban game.
http://www.caveproductions.org/
Other
144 stars 20 forks source link

LUA issues in debug builds that are not in release builds #18

Closed mgerhardy closed 9 years ago

mgerhardy commented 9 years ago
********** Crash dump: **********
Build fingerprint: 'samsung/m0xx/m0:4.3/JSS15J/I9300XXUGNG3:user/release-keys'
pid: 18636, tid: 18730, name: SDLThread  >>> org.caveexpress <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000008
Stack frame #00  pc 00379422  /data/app-lib/org.caveexpress-1/libcaveexpress.so (luaH_getint+17)
Stack frame #01  pc 00365141  /data/app-lib/org.caveexpress-1/libcaveexpress.so (lua_rawgeti+36)
Stack frame #02  pc 003502f9  /data/app-lib/org.caveexpress-1/libcaveexpress.so (LUA::getTableString(int)+56)
Stack frame #03  pc 0035a41d  /data/app-lib/org.caveexpress-1/libcaveexpress.so (SpriteDefinition::init(TextureDefinition const&)+1600)
Stack frame #04  pc 00273461  /data/app-lib/org.caveexpress-1/libcaveexpress.so (SDLBackend::handleInit()+972)
Stack frame #05  pc 002735d3  /data/app-lib/org.caveexpress-1/libcaveexpress.so (SDLBackend::runFrame()+22)
Stack frame #06  pc 00273969  /data/app-lib/org.caveexpress-1/libcaveexpress.so (SDLBackend::mainLoop(int, char**)+256)
Stack frame #07  pc 00211441  /data/app-lib/org.caveexpress-1/libcaveexpress.so (SDL_main+276)
Stack frame #08  pc 003a95b1  /data/app-lib/org.caveexpress-1/libcaveexpress.so (Java_org_libsdl_app_SDLActivity_nativeInit+300)
Stack frame #09  pc 0001e44c  /system/lib/libdvm.so (dvmPlatformInvoke+112)
Stack frame #10  pc 0004e91b  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
Stack frame #11  pc 000505d1  /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+256)
Stack frame #12  pc 00027860  /system/lib/libdvm.so
Stack frame #13  pc 0002be00  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
Stack frame #14  pc 00060a6d  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292)
Stack frame #15  pc 00060a97  /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
Stack frame #16  pc 0005582b  /system/lib/libdvm.so
Stack frame #17  pc 0000cb58  /system/lib/libc.so (__thread_entry+72)
Stack frame #18  pc 0000ccd4  /system/lib/libc.so (pthread_create+208)
Crash dump is completed
********** Crash dump: **********
Build fingerprint: 'samsung/m0xx/m0:4.3/JSS15J/I9300XXUGNG3:user/release-keys'
pid: 20038, tid: 20099, name: SDLThread  >>> org.cavepacker <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
Stack frame #00  pc 0001e824  /system/lib/libc.so
Stack frame #01  pc 0001c76c  /system/lib/libc.so (abort+4)
Stack frame #02  pc 002b1f61  /data/app-lib/org.cavepacker-1/libcavepacker.so (luaD_throw+172)
Stack frame #03  pc 002b1c7d  /data/app-lib/org.cavepacker-1/libcavepacker.so (luaG_errormsg+104)
Stack frame #04  pc 002b1ccf  /data/app-lib/org.cavepacker-1/libcavepacker.so (luaG_runerror+78)
Stack frame #05  pc 002b1a39  /data/app-lib/org.cavepacker-1/libcavepacker.so (luaG_typeerror+56)
Stack frame #06  pc 002c46dd  /data/app-lib/org.cavepacker-1/libcavepacker.so (luaV_gettable+164)
Stack frame #07  pc 002add77  /data/app-lib/org.cavepacker-1/libcavepacker.so (lua_getfield+90)
Stack frame #08  pc 0029affd  /data/app-lib/org.cavepacker-1/libcavepacker.so (LUA::getValueStringFromTable(char const*, String const&)+52)
Stack frame #09  pc 002093eb  /data/app-lib/org.cavepacker-1/libcavepacker.so (FontDefinition::FontDefinition()+894)
Stack frame #10  pc 001f44ff  /data/app-lib/org.cavepacker-1/libcavepacker.so (Singleton<FontDefinition>::getInstance()+54)
Stack frame #11  pc 001f1a17  /data/app-lib/org.cavepacker-1/libcavepacker.so (UI::init(ServiceProvider&, EventHandler&, IFrontend&)+1642)
Stack frame #12  pc 001e33b7  /data/app-lib/org.cavepacker-1/libcavepacker.so (SDLFrontend::initUI(ServiceProvider&)+122)
Stack frame #13  pc 001ce12f  /data/app-lib/org.cavepacker-1/libcavepacker.so (SDLBackend::handleInit()+1122)
Stack frame #14  pc 001ce20b  /data/app-lib/org.cavepacker-1/libcavepacker.so (SDLBackend::runFrame()+22)
Stack frame #15  pc 001ce5a1  /data/app-lib/org.cavepacker-1/libcavepacker.so (SDLBackend::mainLoop(int, char**)+256)
Stack frame #16  pc 001af70d  /data/app-lib/org.cavepacker-1/libcavepacker.so (SDL_main+276)
Stack frame #17  pc 002f22d1  /data/app-lib/org.cavepacker-1/libcavepacker.so (Java_org_libsdl_app_SDLActivity_nativeInit+300)
Stack frame #18  pc 0001e44c  /system/lib/libdvm.so (dvmPlatformInvoke+112)
Stack frame #19  pc 0004e91b  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
Stack frame #20  pc 000505d1  /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+256)
Stack frame #21  pc 00027860  /system/lib/libdvm.so
Stack frame #22  pc 0002be00  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
Stack frame #23  pc 00060a6d  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292)
Stack frame #24  pc 00060a97  /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
Stack frame #25  pc 0005582b  /system/lib/libdvm.so
Stack frame #26  pc 0000cb58  /system/lib/libc.so (__thread_entry+72)
Stack frame #27  pc 0000ccd4  /system/lib/libc.so (pthread_create+208)
mgerhardy commented 9 years ago
I/SDL/APP ( 1031): INFO (LOG_BACKEND): init sprites
F/libc    ( 1031): /home/mgerhardy/dev/caveexpress/src/libs/lua5.2/lapi.c:644: lua_rawgeti: assertion "(((((t))->tt_) == (((5) | (1 << 6))))) && "table expected"" failed
F/libc    ( 1031): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 1109 (SDLThread)
mgerhardy commented 9 years ago
I/SDL/APP (10709): INFO (LOG_BACKEND): init sprites
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'player-idle'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'player-idle'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'player-idle'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'cavenumber7'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'cavenumber7'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'cavenumber7'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'npc-walking-knockout-right'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'npc-walking-knockout-right'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'npc-walking-knockout-right'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-rock-ice-03'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-rock-ice-03'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-rock-ice-03'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-background-ice-07'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-background-ice-07'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-background-ice-07'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'npc-walking-walk-left'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'npc-walking-walk-left'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'npc-walking-walk-left'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-ground-05'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-ground-05'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 3
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-ground-05'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): stack elements: 5
I/SDL/APP (10709): INFO (LOG_LUA): 1: table
I/SDL/APP (10709): INFO (LOG_LUA): 2: 'tile-ground-05'
I/SDL/APP (10709): INFO (LOG_LUA): 3: table
I/SDL/APP (10709): INFO (LOG_LUA): 4: table
I/SDL/APP (10709): INFO (LOG_LUA): 5: nil
F/libc    (10709): /home/mgerhardy/dev/caveexpress/src/libs/lua5.2/lapi.c:644: lua_rawgeti: assertion "(((((t))->tt_) == (((5) | (1 << 6))))) && "table expected"" failed
F/libc    (10709): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 10827 (SDLThread)
mgerhardy commented 9 years ago

Why the heck is the order of the sprites different on linux and android. The lua file is the same.

mgerhardy commented 9 years ago
ccache /home/mattn/android-ndk-r10b/toolchains/llvm-3.4/prebuilt/linux-x86_64/bin/clang++ 
-MMD -MP -MF ./obj/local/armeabi/objs-debug/main/engine/common/ByteStream.o.d 
-gcc-toolchain /home/mattn/android-ndk-r10b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64 
-fpic -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -target armv5te-none-linux-androideabi 
-march=armv5te -mtune=xscale -msoft-float -fno-exceptions -fno-rtti -mthumb -Os -g -DNDEBUG 
-fomit-frame-pointer -fno-strict-aliasing -O0 -UNDEBUG -marm -fno-omit-frame-pointer -Ijni/src 
-Ijni/src/libs -Ijni/src/libs/SDL/include -Ijni/src/libs/SDL_image -Ijni/src/libs/SDL_mixer 
-Ijni/src/libs/SDL_net -Ijni/src/libs/Box2D -Ijni/src/libs/lua -Ijni/src/libs/tinyxml2 
-Ijni/src/libs/sqlite -I/home/mattn/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.8/include 
-I/home/mattn/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include 
-I/home/mattn/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.8/include/backward 
-Ijni/SDL/include -Ijni/SDL/general -Ijni/SDL_image -Ijni/SDL_image/../libpng-1.6.2 -Ijni/SDL_mixer
-Ijni/SDL_mixer/../libogg-1.3.1/include -Ijni/SDL_mixer/../libvorbisidec-1.2.1 -Ijni/SDL_net 
-Ijni/src -DANDROID -DSDL_VIDEO_OPENGLES=1 -DLUA_USE_LONGJMP -DLUA_COMPAT_MODULE -DHAVE_CONFIG_H -Wa,--noexecstack -Wformat 
-Werror=format-security     --std=c++11 
-I/home/mattn/android-ndk-r10b/platforms/android-13/arch-arm/usr/include 
-c  jni/src/engine/common

just as a reference, here is the commandline that was used by the ndk-build

mgerhardy commented 9 years ago

Looks like this issue is float related and lua makes heavy use of floats

mgerhardy commented 9 years ago

this is the cmake toolchain compile command:

cd src/libs/glm && /home/mgerhardy/android-ndk-r10d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++   
-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -mthumb 
--sysroot=/home/mgerhardy/android-ndk-r10d/platforms/android-13/arch-arm -fPIC -fno-strict-aliasing
-ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -DANDROID
-Wa,--noexecstack -Wformat -Werror=format-security -DGL_GLEXT_PROTOTYPES -std=c++11
-fno-rtti -fno-exceptions -I/home/mgerhardy/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.8/include
-I/home/mgerhardy/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include
-I/home/mgerhardy/android-ndk-r10d/android-13/arch-arm/usr/include -Wall -Wno-multichar
-Wextra -Wno-unused-parameter -Wno-unknown-pragmas -Wno-ignored-qualifiers -Wno-long-long
-Wno-overloaded-virtual -O0 -fno-omit-frame-pointer -g -DDEBUG 
-I/home/mgerhardy/dev/caveexpress/src -I/home/mgerhardy/dev/caveexpress/src/modules 
-I/home/mgerhardy/dev/caveexpress/src/libs/glm    -Wno-shadow -o CMakeFiles/glm.dir/glm/detail/glm.cpp.o 
-c /home/mgerhardy/dev/caveexpress/src/libs/glm/glm/detail/glm.cpp
mgerhardy commented 9 years ago

new (but in debug mode)

-DANDROID
-DDEBUG
-DGL_GLEXT_PROTOTYPES

-ffunction-sections
-fno-exceptions
-fno-omit-frame-pointer
-fno-rtti
-fno-strict-aliasing
-fPIC
-fstack-protector
-funwind-tables

-I/home/mgerhardy/android-ndk-r10d/android-13/arch-arm/usr/include
-I/home/mgerhardy/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.8/include
-I/home/mgerhardy/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include

-march=armv7-a
-mfloat-abi=softfp
-mfpu=vfpv3-d16
-mthumb

-no-canonical-prefixes
-O0
--sysroot=/home/mgerhardy/android-ndk-r10d/platforms/android-13/arch-arm

-Wa,--noexecstack

old:

-DANDROID
-DHAVE_CONFIG_H
-DLUA_COMPAT_MODULE
-DLUA_USE_LONGJMP
-DNDEBUG
-DSDL_VIDEO_OPENGLES=1

-ffunction-sections
-fno-exceptions
-fno-omit-frame-pointer
-fno-rtti
-fno-strict-aliasing
-fomit-frame-pointer
-fpic
-fstack-protector
-funwind-tables

-gcc-toolchain

-I/home/mattn/android-ndk-r10b/platforms/android-13/arch-arm/usr/include
-I/home/mattn/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.8/include
-I/home/mattn/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.8/include/backward
-I/home/mattn/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include

-march=armv5te
-marm
-MF
-MMD
-MP
-msoft-float
-mthumb
-mtune=xscale

-no-canonical-prefixes
-O0
-Os

-target=armv5te-none-linux-androideabi
-UNDEBUG

-Wa,--noexecstack
mgerhardy commented 9 years ago

building in release mode doesn't help for android - still lua errors.

mgerhardy commented 9 years ago

new buildchain - release mode

/home/mgerhardy/android-ndk-r10d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++
-march=armv7-a
-mfpu=vfpv3-d16
-mfloat-abi=softfp
-mthumb
--sysroot=/home/mgerhardy/android-ndk-r10d/platforms/android-13/arch-arm
-fPIC
-fno-strict-aliasing
-ffunction-sections
-funwind-tables
-fstack-protector
-no-canonical-prefixes
-DANDROID
-Wa,--noexecstack
-Wformat
-Werror=format-security
-DGL_GLEXT_PROTOTYPES
-std=c++11
-fno-rtti
-fno-exceptions
-I/home/mgerhardy/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.8/include
-I/home/mgerhardy/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include
-I/home/mgerhardy/android-ndk-r10d/android-13/arch-arm/usr/include
-Wall
-Wno-multichar
-Wextra
-Wno-unused-parameter
-Wno-unknown-pragmas
-Wno-ignored-qualifiers
-Wno-long-long
-Wno-overloaded-virtual
-Os
-fomit-frame-pointer
-funswitch-loops
-finline-limit=300
-DNDEBUG
-I/home/mgerhardy/dev/caveexpress/src
-I/home/mgerhardy/dev/caveexpress/src/modules
-I/home/mgerhardy/dev/caveexpress/src/libs/SDL2_image
-I/home/mgerhardy/dev/caveexpress/src/libs/lua5.2
-I/home/mgerhardy/dev/caveexpress/src/libs/sdl2
-I/home/mgerhardy/dev/caveexpress/src/libs/sdl2/include
-I/home/mgerhardy/dev/caveexpress/src/libs/sdl2/src
-I/home/mgerhardy/dev/caveexpress/src/libs/sdl2/general
-I/home/mgerhardy/dev/caveexpress/src/libs/sqlite3
-I/home/mgerhardy/dev/caveexpress/src/libs/box2d
-I/home/mgerhardy/dev/caveexpress/src/libs/glm
-o
CMakeFiles/gfx.dir/GL3Frontend.cpp.o
-c
/home/mgerhardy/dev/caveexpress/src/modules/gfx/GL3Frontend.cpp
mgerhardy commented 9 years ago

also the same happens on osx 10.9

mgerhardy commented 9 years ago

ee265e9446d166dab556f794d6d7fd308b5d38c0 fixed the issue on android - the app is starting again for me.

mgerhardy commented 9 years ago

closing this for now - see my last comment. If it is still alive for you - please reopen