【发布时间】:2021-03-26 00:31:19
【问题描述】:
根据文档 (https://www.lua.org/manual/5.3/manual.html#lua_sethook),上面写着[empasise mine]:
参数 f 是钩子函数。掩码指定在哪些事件上 将调用钩子:它由常量的按位或形成 LUA_MASKCALL、LUA_MASKRET、LUA_MASKLINE 和 LUA_MASKCOUNT。伯爵 参数仅在掩码包含 LUA_MASKCOUNT 时才有意义。为了 每个事件,钩子被调用如下:
调用钩子:在解释器调用函数时调用。这 在 Lua 进入新函数之后,在 函数获取它的参数。
返回钩子:当 解释器从函数返回。钩子在之前被调用 Lua 离开了这个函数。没有标准的方法来访问这些值 由函数返回。
线路钩子:当 解释器即将开始执行新的代码行,或者 当它在代码中跳回时(甚至到同一行)。 (本次活动 仅在 Lua 执行 Lua 函数时发生。)
如何理解lua_Hook在代码中跳转时被调用(该事件仅在Lua执行Lua函数时发生?
【问题讨论】:
-
可能这意味着一个 C 函数(从 Lua 代码调用,例如
math.sin)已经返回,并且 Lua 代码继续运行。
标签: lua