Re: SEGV in in lua_resume after lua_yield from hook.

  • From: Mike Pall <mikelj-2203@xxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Wed, 30 Mar 2022 22:59:19 +0200

Theo Schlossnagle wrote:

*(cframe_pc(cframe_raw(L->cframe))-1) == 1369;

The bc_op() of that is BC_FUNCF, i.e. the start of a regular Lua
function.

It would help to find out where and why lua_resume() gets a SEGV.

Other things to check for would be whether lj_dispatch_ins() sets
everything up correctly before calling the hook function. And
whether the special case for hook yields in lua_yield() works with
that state. Pay particular attention at the Lua stack levels, the
frame chain and possible stack growth anywhere inbetween.

Without a reduced test case this will be difficult to debug.

--Mike

Other related posts: