by Edward-san » Sun Jan 13, 2019 5:37 am
When I load:
Code: Select all
gzdoom -iwad DOOM2.WAD -warp 01 +vm_jit 0
I get this assertion error:
Code: Select all
gzdoom: /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:716: static int VMExec_Checked::ExecScriptFunc(VMFrameStack*, VMReturn*, int): Assertion `numret == C && "Number of parameters returned differs from what was expected by the caller"' failed.
And this is the stack trace ( **a bunch of stuff omitted for brevity** indicates a long string containing many pointers to
VMExec_Checked::ExecScriptFunc ):
Spoiler:
Code: Select all
#4 0x00005555564547ac in VMExec_Checked::ExecScriptFunc (stack=0x7ffff7fbc0a8, ret=0x7fffffffc1d0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:716
call = 0x555557919460
returns = {{Location = 0x555559232cd8, RegType = 0 '\000'}, {Location = 0x7fffffffbc90, RegType = 146 '\222'}, {Location = 0x7fffffffbc30, RegType = 150 '\226'}, {Location = 0x555559232ca0, RegType = 96 '`'}, {Location = 0xffffbc60, RegType = 0 '\000'}, {Location = 0x100000001, RegType = 81 'Q'}, {Location = 0x555558ba1e00, RegType = 96 '`'}, {Location = 0x555559232cd8, RegType = 200 '\310'}}
numret = 0
ops = **a bunch of stuff omitted for brevity**
f = 0x555559232ca0
sfunc = 0x555558ba1e00
konstd = 0x555559a7f57c
konstf = 0x0
konsts = 0x0
konsta = 0x555559a7f58c
pc = 0x555559a7f558
__PRETTY_FUNCTION__ = "static int VMExec_Checked::ExecScriptFunc(VMFrameStack*, VMReturn*, int)"
reg = {d = 0x555559232cd8, f = 0x555559232cc8, s = 0x555559232cc8, a = 0x555559232cc8, param = 0x555559232cc0}
ptr = 0x555557919460
fb = 6.9533487929753533e-310
fc = 4.6355730699163669e-310
fbp = 0x0
fcp = 0x555558631f48
a = 1
b = 1
c = 21845
op = <optimized out>
op = <optimized out>
op = <optimized out>
#5 0x0000555556463187 in VMExec_Checked::Exec (func=0x555558ba1e00, params=0x555559232c60, numparams=1, ret=0x7fffffffc1d0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:2005
stack = 0x7ffff7fbc0a8
newf = 0x555559232ca0
#6 0x0000555556471cfa in VMScriptFunction::FirstScriptCall (func=0x555558ba1e00, params=0x555559232c60, numparams=1, ret=0x7fffffffc1d0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmframe.cpp:300
No locals.
#7 0x0000555556454771 in VMExec_Checked::ExecScriptFunc (stack=0x7ffff7fbc0a8, ret=0x7fffffffc7b0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:714
sfunc = 0x555558ba1e00
call = 0x555558ba1e00
returns = {{Location = 0x555559232c88, RegType = 0 '\000'}, {Location = 0x7fffffffc270, RegType = 146 '\222'}, {Location = 0x7fffffffc210, RegType = 150 '\226'}, {Location = 0x555559232c40, RegType = 96 '`'}, {Location = 0xffffc240, RegType = 0 '\000'}, {Location = 0x100000001, RegType = 161 '\241'}, {Location = 0x55555927a2f0, RegType = 96 '`'}, {Location = 0x555559232c88, RegType = 104 'h'}}
numret = 0
ops = **a bunch of stuff omitted for brevity**
f = 0x555559232c40
sfunc = 0x55555927a2f0
konstd = 0x555557c24918
konstf = 0x0
konsts = 0x0
konsta = 0x555557c2494c
pc = 0x555557c247fc
__PRETTY_FUNCTION__ = "static int VMExec_Checked::ExecScriptFunc(VMFrameStack*, VMReturn*, int)"
reg = {d = 0x555559232c88, f = 0x555559232c68, s = 0x555559232c68, a = 0x555559232c68, param = 0x555559232c60}
ptr = 0x555558ba1e00
fb = 2.0236928853657458e-320
fc = 0
fbp = 0x1
fcp = 0x7fffffffc0e0
a = 0
b = 1
c = 12
op = <optimized out>
op = <optimized out>
op = <optimized out>
#8 0x0000555556463187 in VMExec_Checked::Exec (func=0x55555927a2f0, params=0x555559232b60, numparams=1, ret=0x7fffffffc7b0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:2005
stack = 0x7ffff7fbc0a8
newf = 0x555559232c40
#9 0x0000555556471cfa in VMScriptFunction::FirstScriptCall (func=0x55555927a2f0, params=0x555559232b60, numparams=1, ret=0x7fffffffc7b0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmframe.cpp:300
No locals.
#10 0x0000555556454771 in VMExec_Checked::ExecScriptFunc (stack=0x7ffff7fbc0a8, ret=0x0, numret=0) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:714
sfunc = 0x55555927a2f0
call = 0x55555927a2f0
returns = {{Location = 0x555559232c28, RegType = 0 '\000'}, {Location = 0x7fffffffc850, RegType = 146 '\222'}, {Location = 0x7fffffffc7f0, RegType = 150 '\226'}, {Location = 0x555559232b40, RegType = 128 '\200'}, {Location = 0xffffc820, RegType = 0 '\000'}, {Location = 0x100000001, RegType = 161 '\241'}, {Location = 0x55555927b250, RegType = 128 '\200'}, {Location = 0x555559232c28, RegType = 152 '\230'}}
numret = 0
ops = **a bunch of stuff omitted for brevity**
f = 0x555559232b40
sfunc = 0x55555927b250
konstd = 0x555557c264d4
konstf = 0x555557c26534
konsts = 0x0
konsta = 0x555557c2653c
pc = 0x555557c26214
__PRETTY_FUNCTION__ = "static int VMExec_Checked::ExecScriptFunc(VMFrameStack*, VMReturn*, int)"
reg = {d = 0x555559232c28, f = 0x555559232b98, s = 0x555559232b98, a = 0x555559232b98, param = 0x555559232b60}
ptr = 0x55555927a2f0
fb = 1.9762625833649862e-322
fc = 4.6355721246312385e-310
fbp = 0x2
fcp = 0x0
a = 5
b = 1
c = 220
op = <optimized out>
op = <optimized out>
op = <optimized out>
#11 0x0000555556463187 in VMExec_Checked::Exec (func=0x55555927b250, params=0x7fffffffc980, numparams=1, ret=0x0, numret=0) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:2005
stack = 0x7ffff7fbc0a8
newf = 0x555559232b40
#12 0x0000555556471cfa in VMScriptFunction::FirstScriptCall (func=0x55555927b250, params=0x7fffffffc980, numparams=1, ret=0x0, numret=0) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmframe.cpp:300
No locals.
#13 0x0000555556472496 in VMCall (func=0x55555927b250, params=0x7fffffffc980, numparams=1, results=0x0, numresults=0) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmframe.cpp:573
sfunc = 0x55555927b250
numret = 21845
code = 0x555557c26190
#14 0x0000555556191b33 in P_PlayerThink (player=0x555557403f00 <players>) at /home/edward-san/zdoom/gzdoom/trunk/src/p_user.cpp:1252
param = {{i = 1569687904, a = 0x55555d8f8960, f = 4.6355773582504433e-310, biggest = {foo = {1569687904, 21845}}, sp = 0x55555d8f8960}}
cmd = 0x555557403f0c <players+12>
VIndex = 66
__PRETTY_FUNCTION__ = "void P_PlayerThink(player_t*)"
clss = 0x5555584e9260
func = 0x55555927b250
#15 0x0000555556185947 in P_Ticker () at /home/edward-san/zdoom/gzdoom/trunk/src/p_tick.cpp:139
i = 0
i = 8
#16 0x00005555560159a2 in G_Ticker () at /home/edward-san/zdoom/gzdoom/trunk/src/g_game.cpp:1170
i = 8
oldgamestate = GS_LEVEL
buf = 0
rngsum = 4210135557
#17 0x0000555555fedfbd in TryRunTics () at /home/edward-san/zdoom/gzdoom/trunk/src/d_net.cpp:1951
i = 8
lowtic = 1
realtics = 1
availabletics = 1
counts = 0
numplaying = 1
doWait = true
#18 0x0000555555fe22fd in D_DoomLoop () at /home/edward-san/zdoom/gzdoom/trunk/src/d_main.cpp:1007
lasttic = 0
numret is
0 while
C is ...
{11356.523406294143949491931077970765, -11433.4627433362978788372438434526231, 59421121885698253195157962752, 30423614405477505635920876929024, 7788445287802241442795744493830144, 1.44269504088896340735992468100189204, 0.693147180559945309417232121457981864, -1.94704509238074995158795957333327386e-31, 1.00000000000000000000000000000000005e-4900, 5.94865747678615882542879663314003565e+4931, 256, 32768, 0.5, 0.166666666666666666666666666666666683, 0.0416666666666666666666654902320001674, 0.00833333333333333333333314659767198461, 0.00138888888889899438565058018857254025, 0.000198412698413981650382436541785404286}
[EDIT] Doesn't happen on the 3.7 branch.
When I load:
[code]
gzdoom -iwad DOOM2.WAD -warp 01 +vm_jit 0
[/code]
I get this assertion error:
[code]
gzdoom: /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:716: static int VMExec_Checked::ExecScriptFunc(VMFrameStack*, VMReturn*, int): Assertion `numret == C && "Number of parameters returned differs from what was expected by the caller"' failed.
[/code]
And this is the stack trace ( **a bunch of stuff omitted for brevity** indicates a long string containing many pointers to [b]VMExec_Checked::ExecScriptFunc[/b] ):
[spoiler][code]
#4 0x00005555564547ac in VMExec_Checked::ExecScriptFunc (stack=0x7ffff7fbc0a8, ret=0x7fffffffc1d0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:716
call = 0x555557919460
returns = {{Location = 0x555559232cd8, RegType = 0 '\000'}, {Location = 0x7fffffffbc90, RegType = 146 '\222'}, {Location = 0x7fffffffbc30, RegType = 150 '\226'}, {Location = 0x555559232ca0, RegType = 96 '`'}, {Location = 0xffffbc60, RegType = 0 '\000'}, {Location = 0x100000001, RegType = 81 'Q'}, {Location = 0x555558ba1e00, RegType = 96 '`'}, {Location = 0x555559232cd8, RegType = 200 '\310'}}
numret = 0
ops = **a bunch of stuff omitted for brevity**
f = 0x555559232ca0
sfunc = 0x555558ba1e00
konstd = 0x555559a7f57c
konstf = 0x0
konsts = 0x0
konsta = 0x555559a7f58c
pc = 0x555559a7f558
__PRETTY_FUNCTION__ = "static int VMExec_Checked::ExecScriptFunc(VMFrameStack*, VMReturn*, int)"
reg = {d = 0x555559232cd8, f = 0x555559232cc8, s = 0x555559232cc8, a = 0x555559232cc8, param = 0x555559232cc0}
ptr = 0x555557919460
fb = 6.9533487929753533e-310
fc = 4.6355730699163669e-310
fbp = 0x0
fcp = 0x555558631f48
a = 1
b = 1
c = 21845
op = <optimized out>
op = <optimized out>
op = <optimized out>
#5 0x0000555556463187 in VMExec_Checked::Exec (func=0x555558ba1e00, params=0x555559232c60, numparams=1, ret=0x7fffffffc1d0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:2005
stack = 0x7ffff7fbc0a8
newf = 0x555559232ca0
#6 0x0000555556471cfa in VMScriptFunction::FirstScriptCall (func=0x555558ba1e00, params=0x555559232c60, numparams=1, ret=0x7fffffffc1d0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmframe.cpp:300
No locals.
#7 0x0000555556454771 in VMExec_Checked::ExecScriptFunc (stack=0x7ffff7fbc0a8, ret=0x7fffffffc7b0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:714
sfunc = 0x555558ba1e00
call = 0x555558ba1e00
returns = {{Location = 0x555559232c88, RegType = 0 '\000'}, {Location = 0x7fffffffc270, RegType = 146 '\222'}, {Location = 0x7fffffffc210, RegType = 150 '\226'}, {Location = 0x555559232c40, RegType = 96 '`'}, {Location = 0xffffc240, RegType = 0 '\000'}, {Location = 0x100000001, RegType = 161 '\241'}, {Location = 0x55555927a2f0, RegType = 96 '`'}, {Location = 0x555559232c88, RegType = 104 'h'}}
numret = 0
ops = **a bunch of stuff omitted for brevity**
f = 0x555559232c40
sfunc = 0x55555927a2f0
konstd = 0x555557c24918
konstf = 0x0
konsts = 0x0
konsta = 0x555557c2494c
pc = 0x555557c247fc
__PRETTY_FUNCTION__ = "static int VMExec_Checked::ExecScriptFunc(VMFrameStack*, VMReturn*, int)"
reg = {d = 0x555559232c88, f = 0x555559232c68, s = 0x555559232c68, a = 0x555559232c68, param = 0x555559232c60}
ptr = 0x555558ba1e00
fb = 2.0236928853657458e-320
fc = 0
fbp = 0x1
fcp = 0x7fffffffc0e0
a = 0
b = 1
c = 12
op = <optimized out>
op = <optimized out>
op = <optimized out>
#8 0x0000555556463187 in VMExec_Checked::Exec (func=0x55555927a2f0, params=0x555559232b60, numparams=1, ret=0x7fffffffc7b0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:2005
stack = 0x7ffff7fbc0a8
newf = 0x555559232c40
#9 0x0000555556471cfa in VMScriptFunction::FirstScriptCall (func=0x55555927a2f0, params=0x555559232b60, numparams=1, ret=0x7fffffffc7b0, numret=1) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmframe.cpp:300
No locals.
#10 0x0000555556454771 in VMExec_Checked::ExecScriptFunc (stack=0x7ffff7fbc0a8, ret=0x0, numret=0) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:714
sfunc = 0x55555927a2f0
call = 0x55555927a2f0
returns = {{Location = 0x555559232c28, RegType = 0 '\000'}, {Location = 0x7fffffffc850, RegType = 146 '\222'}, {Location = 0x7fffffffc7f0, RegType = 150 '\226'}, {Location = 0x555559232b40, RegType = 128 '\200'}, {Location = 0xffffc820, RegType = 0 '\000'}, {Location = 0x100000001, RegType = 161 '\241'}, {Location = 0x55555927b250, RegType = 128 '\200'}, {Location = 0x555559232c28, RegType = 152 '\230'}}
numret = 0
ops = **a bunch of stuff omitted for brevity**
f = 0x555559232b40
sfunc = 0x55555927b250
konstd = 0x555557c264d4
konstf = 0x555557c26534
konsts = 0x0
konsta = 0x555557c2653c
pc = 0x555557c26214
__PRETTY_FUNCTION__ = "static int VMExec_Checked::ExecScriptFunc(VMFrameStack*, VMReturn*, int)"
reg = {d = 0x555559232c28, f = 0x555559232b98, s = 0x555559232b98, a = 0x555559232b98, param = 0x555559232b60}
ptr = 0x55555927a2f0
fb = 1.9762625833649862e-322
fc = 4.6355721246312385e-310
fbp = 0x2
fcp = 0x0
a = 5
b = 1
c = 220
op = <optimized out>
op = <optimized out>
op = <optimized out>
#11 0x0000555556463187 in VMExec_Checked::Exec (func=0x55555927b250, params=0x7fffffffc980, numparams=1, ret=0x0, numret=0) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmexec.h:2005
stack = 0x7ffff7fbc0a8
newf = 0x555559232b40
#12 0x0000555556471cfa in VMScriptFunction::FirstScriptCall (func=0x55555927b250, params=0x7fffffffc980, numparams=1, ret=0x0, numret=0) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmframe.cpp:300
No locals.
#13 0x0000555556472496 in VMCall (func=0x55555927b250, params=0x7fffffffc980, numparams=1, results=0x0, numresults=0) at /home/edward-san/zdoom/gzdoom/trunk/src/scripting/vm/vmframe.cpp:573
sfunc = 0x55555927b250
numret = 21845
code = 0x555557c26190
#14 0x0000555556191b33 in P_PlayerThink (player=0x555557403f00 <players>) at /home/edward-san/zdoom/gzdoom/trunk/src/p_user.cpp:1252
param = {{i = 1569687904, a = 0x55555d8f8960, f = 4.6355773582504433e-310, biggest = {foo = {1569687904, 21845}}, sp = 0x55555d8f8960}}
cmd = 0x555557403f0c <players+12>
VIndex = 66
__PRETTY_FUNCTION__ = "void P_PlayerThink(player_t*)"
clss = 0x5555584e9260
func = 0x55555927b250
#15 0x0000555556185947 in P_Ticker () at /home/edward-san/zdoom/gzdoom/trunk/src/p_tick.cpp:139
i = 0
i = 8
#16 0x00005555560159a2 in G_Ticker () at /home/edward-san/zdoom/gzdoom/trunk/src/g_game.cpp:1170
i = 8
oldgamestate = GS_LEVEL
buf = 0
rngsum = 4210135557
#17 0x0000555555fedfbd in TryRunTics () at /home/edward-san/zdoom/gzdoom/trunk/src/d_net.cpp:1951
i = 8
lowtic = 1
realtics = 1
availabletics = 1
counts = 0
numplaying = 1
doWait = true
#18 0x0000555555fe22fd in D_DoomLoop () at /home/edward-san/zdoom/gzdoom/trunk/src/d_main.cpp:1007
lasttic = 0
[/code][/spoiler]
[b]numret[/b] is [b]0[/b] while [b]C[/b] is ...
[b]{11356.523406294143949491931077970765, -11433.4627433362978788372438434526231, 59421121885698253195157962752, 30423614405477505635920876929024, 7788445287802241442795744493830144, 1.44269504088896340735992468100189204, 0.693147180559945309417232121457981864, -1.94704509238074995158795957333327386e-31, 1.00000000000000000000000000000000005e-4900, 5.94865747678615882542879663314003565e+4931, 256, 32768, 0.5, 0.166666666666666666666666666666666683, 0.0416666666666666666666654902320001674, 0.00833333333333333333333314659767198461, 0.00138888888889899438565058018857254025, 0.000198412698413981650382436541785404286}[/b]
:shrug:
[EDIT] Doesn't happen on the 3.7 branch.