lua-users home
lua-l archive

HOOK_RET bug?

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi!
I guess, I found a bug again in the debugging interface:
Consider this piece of code:
k=0;
function secondcall()
return 2; //LUA_HOOKRET *is* called for this line
end
function firstcall()
return secondcall(); //LUA_HOOKRET is *not* called for this line
end
k=firstcall();
k=0;
k=1;
the bug seems to be in lvm.c,v 1.284 2003年04月03日 13:35:34, line 662:
When the first part of the if-statement is called, then the LUA_HOOKRET hook is omitted.
/* previous function was running `here'? */
if (!(ci->state & CI_CALLING)) {
lua_assert((ci->state & CI_C) || ci->u.l.pc != &pc);
return ra; /* no: return */
}
else
{ /* yes: continue its execution */
...
}
Does anyone have suggestions for a fix?
The else-branch calls a function luaD_poscall to process the debug return hooks.
Is that the appropriate function that needs to be called in order to fix the bug?
Jan-Eric Duden

AltStyle によって変換されたページ (->オリジナル) /