lua c如何退出当前执行的lua脚本
- 设置钩子函数
lua_sethook(currL, exitLuaScript, LUA_MASKCALL , 0);
参数说明:
LUA_MASKCALL 调用函数时回调: 在调用一个函数对象之前,都会先调用luaD_precall,在这个函数里触发事件。
LUA_MASKRET 函数返回时回调:完成一个函数时,会先调用luaD_poscall,在这个函数里触发事件。
LUA_MASKLINE 执行一行时代码时回调,vmfetch中每执行一条指令,都会调用luaG_traceexec函数,在其中判断新行并触发事件
LUA_MASKCOUNT 每执行count条指令时回调,vmfetch中每执行一条指令,都会调用luaG_traceexec函数,在其中判断是否执行了count条件指令并触发事件。
- 在钩子函数中使用c库的longjmp()
static int exitLuaScript_flag = 0;
static jmp_buf place;
static void exitLuaScript(lua_State* L, lua_D

博客主要探讨lua c如何退出当前执行的lua脚本,介绍了设置钩子函数的方法,说明了参数情况,还提及在钩子函数中使用c库的longjmp(),并在需要跳转到的点设置setjmp,最后给出了longjmp setjmp的使用示例。
最低0.47元/天 解锁文章
444

被折叠的 条评论
为什么被折叠?



