luajit无法勾选"尾巴返回"

时间:2016-07-02 09:12:15

标签: lua luajit tail-call

我们知道Lua有一个库函数debug.sethook,当任何函数返回时,
使用事件调用钩子函数"返回"或者"尾巴返回",但是LuaJIT呢 不挂钩"尾巴返回"。
是否有任何方法可以关闭LuaJIT的专业化, 让它钩住"尾巴返回"?

1 个答案:

答案 0 :(得分:0)

它是一个"功能" LuaJIT的实施,所以你不太可能把它关掉。作为LuaJIT suggested的作者,您可以在钩子中跟踪堆栈深度,但您无法专门跟踪尾部回调返回。

注意Lua也从尾部返回到tail calls:"对于调用事件,事件可以是LUA_HOOKCALL,正常值,或LUA_HOOKTAILCALL,用于尾调用;在这种情况下,将没有相应的返回事件。"