It's a function call, but I don't know which, and I can't see which using backtrace because I don't have the debugging symbols, which I can't have, because building GZDoom with -DCMAKE_BUILD_TYPE=Debug makes this error:
Code: Select all
gzdoom: /home/gustavo6046/Projects/gzdoom/src/scripting/backend/codegen.cpp:2321: virtual ExpEmit FxPostIncrDecr::Emit(VMFunctionBuilder *): Assertion `ValueType == Base->ValueType && IsNumeric()' failed.
Anyway, this is the stack backtrace:
Code: Select all
(gdb) backtrace
#0 0x00007ffff74f32d2 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x0000555555fc0f53 in ?? ()
#2 0x0000555555fead7a in VMExec_Unchecked::ExecScriptFunc(VMFrameStack*, VMReturn*, int) ()
#3 0x0000555555feb6c0 in VMExec_Unchecked::Exec(VMFunction*, VMValue*, int, VMReturn*, int) ()
#4 0x0000555555fe9671 in VMExec_Unchecked::ExecScriptFunc(VMFrameStack*, VMReturn*, int) ()
#5 0x0000555555feb6c0 in VMExec_Unchecked::Exec(VMFunction*, VMValue*, int, VMReturn*, int) ()
#6 0x0000555555fe9671 in VMExec_Unchecked::ExecScriptFunc(VMFrameStack*, VMReturn*, int) ()
#7 0x0000555555feb6c0 in VMExec_Unchecked::Exec(VMFunction*, VMValue*, int, VMReturn*, int) ()
#8 0x0000555555fe9671 in VMExec_Unchecked::ExecScriptFunc(VMFrameStack*, VMReturn*, int) ()
#9 0x0000555555feb6c0 in VMExec_Unchecked::Exec(VMFunction*, VMValue*, int, VMReturn*, int) ()
#10 0x0000555555fec669 in VMCall(VMFunction*, VMValue*, int, VMReturn*, int) ()
#11 0x0000555555cecf5e in FState::CallAction(AActor*, AActor*, FStateParamInfo*, FState**) ()
#12 0x0000555555c396bc in AActor::SetState(FState*, bool) ()
#13 0x0000555555c49524 in AActor::Tick() ()
#14 0x0000555555d1ea8a in ?? ()
#15 0x0000555555fec5ac in VMCall(VMFunction*, VMValue*, int, VMReturn*, int) ()
#16 0x0000555555d20d14 in DThinker::CallTick() ()
#17 0x0000555555d24fe6 in FThinkerCollection::RunThinkers(FLevelLocals*) ()
#18 0x0000555555c61ef0 in P_Ticker() ()
#19 0x0000555555ba9ad5 in G_Ticker() ()
#20 0x0000555555b8334c in TryRunTics() ()
#21 0x0000555555b78427 in D_DoomLoop() ()
#22 0x0000555555b7b394 in D_DoomMain() ()
#23 0x00005555557b17b4 in main ()
EDIT: I managed to use CMAKE_BUILD_TYPE=RelWithDebInfo to compile a Release binary with symbols (among other debug information). I am still, however, unable to determine which function causes this, as the arguments are optimized out. Fortunately, we have more info:
Code: Select all
(gdb) bt
#0 0x00007ffff74692d2 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x0000555555e2f58b in TArray<DObject*, DObject*>::Insert (this=<optimized out>, index=<optimized out>, item=<optimized out>) at /home/gustavo6046/Projects/gzdoom/src/utility/tarray.h:397
#2 ObjArrayInsert (self=0x555560a189b8, index=0, obj=<optimized out>) at /home/gustavo6046/Projects/gzdoom/src/scripting/backend/dynarrays.cpp:876
#3 0x0000555555e332e7 in AF_FDynArray_Obj_Insert (param=0x55555d95c750, numparam=<optimized out>, ret=<optimized out>, numret=<optimized out>)
at /home/gustavo6046/Projects/gzdoom/src/scripting/backend/dynarrays.cpp:884
#4 0x0000555555e48dfa in VMExec_Unchecked::ExecScriptFunc (stack=<optimized out>, ret=0x7fffffffc3a0, numret=0) at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmexec.h:700
#5 0x0000555555e47b7e in VMExec_Unchecked::Exec (func=<optimized out>, params=0x55555d95c650, numparams=<optimized out>, ret=0x7fffffffc3a0, numret=0)
at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmexec.h:2007
#6 0x0000555555e48d76 in VMExec_Unchecked::ExecScriptFunc (stack=<optimized out>, ret=0x7fffffffc560, numret=1) at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmexec.h:714
#7 0x0000555555e47b7e in VMExec_Unchecked::Exec (func=<optimized out>, params=0x55555d95c5b0, numparams=<optimized out>, ret=0x7fffffffc560, numret=1)
at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmexec.h:2007
#8 0x0000555555e48d76 in VMExec_Unchecked::ExecScriptFunc (stack=<optimized out>, ret=0x7fffffffc720, numret=0) at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmexec.h:714
#9 0x0000555555e47b7e in VMExec_Unchecked::Exec (func=<optimized out>, params=0x55555d95c510, numparams=<optimized out>, ret=0x7fffffffc720, numret=0)
at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmexec.h:2007
#10 0x0000555555e48d76 in VMExec_Unchecked::ExecScriptFunc (stack=<optimized out>, ret=0x7fffffffc8e8, numret=0) at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmexec.h:714
#11 0x0000555555e47b7e in VMExec_Unchecked::Exec (func=<optimized out>, params=0x7fffffffc8b0, numparams=<optimized out>, ret=0x7fffffffc8e8, numret=0)
at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmexec.h:2007
#12 0x0000555555e56375 in VMCall (func=0x55555c6205f0, params=0x7fffffffc8b0, numparams=1, results=0x7fffffffc8e8, numresults=0)
at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vmframe.cpp:569
#13 0x0000555555c9f921 in VMCallAction (func=0x55555c6205f0, params=0x55556084a360, numparams=<optimized out>, results=0x0, numresults=8)
at /home/gustavo6046/Projects/gzdoom/src/scripting/vm/vm.h:485
#14 FState::CallAction (this=0x55555c536258, self=0x55556084a360, stateowner=0x55556084a360, info=0x7fffffffc930, stateret=0x0) at /home/gustavo6046/Projects/gzdoom/src/gamedata/info.cpp:213
#15 0x0000555555c254e4 in AActor::SetState (this=0x55556084a360, newstate=0x55555c536258, nofunction=false) at /home/gustavo6046/Projects/gzdoom/src/playsim/p_mobj.cpp:562
#16 0x0000555555c2c6c4 in AActor::Tick (this=0x55556084a360) at /home/gustavo6046/Projects/gzdoom/src/playsim/p_mobj.cpp:4043
#17 0x0000555555cc69a1 in AF_DThinker_Tick (param=0x7fffffffca70, numparam=<optimized out>, ret=<optimized out>, numret=<optimized out>)
at /home/gustavo6046/Projects/gzdoom/src/playsim/dthinker.cpp:842
#18 0x0000555555cc566d in DThinker::CallTick (this=<optimized out>) at /home/gustavo6046/Projects/gzdoom/src/playsim/dthinker.cpp:852
#19 FThinkerList::TickThinkers (this=<optimized out>, dest=<optimized out>) at /home/gustavo6046/Projects/gzdoom/src/playsim/dthinker.cpp:575
#20 0x0000555555cc4c5b in FThinkerCollection::RunThinkers (this=0x555556ba95e0 <level+5128>, Level=0x555556ba81d8 <level>) at /home/gustavo6046/Projects/gzdoom/src/playsim/dthinker.cpp:114
#21 0x0000555555c4789d in P_Ticker () at /home/gustavo6046/Projects/gzdoom/src/p_tick.cpp:154
#22 0x0000555555ba52ba in G_Ticker () at /home/gustavo6046/Projects/gzdoom/src/g_game.cpp:1192
#23 0x0000555555b96edc in TryRunTics () at /home/gustavo6046/Projects/gzdoom/src/d_net.cpp:1984
#24 0x0000555555b8e015 in D_DoomLoop () at /home/gustavo6046/Projects/gzdoom/src/d_main.cpp:1032
#25 0x0000555555b913ff in D_DoomMain () at /home/gustavo6046/Projects/gzdoom/src/d_main.cpp:2722
#26 0x00005555557d874c in main (argc=13, argv=0x7fffffffdf38) at /home/gustavo6046/Projects/gzdoom/src/posix/sdl/i_main.cpp:226
EDIT 2: I added a temporary print to my copy of the GZDoom source code, and I managed to fix the error. After undoing this print line, I am still working on 0.8.2. Stay tuned. :)