我该如何使用Lua hooks来获取当前正在运行的函数名称?

我目前正在运行一段带有挂钩的 Lua 脚本,使用 LUA_MASKCALL,并实现了以下挂钩函数:

void LuaHook(lua_State *L, lua_Debug *ar) {
    switch(ar->event) {
        case LUA_HOOKCALL:
            lua_getinfo(L, ">n", ar);
            // 断点在这里...
        } break;
        default:
            break;
    }
}

我想获取被调用函数的名称,但不确定我是否做得对,因为它从来没有给我任何东西(虽然断点在适当的时候被触发)。被调用的函数是有名称的绑定 C 函数,这似乎很奇怪。总的来说,lua_getinfo 对我来说完全是个谜,文档也没有解释清楚,所以任何帮助都将不胜感激。

原文链接 https://stackoverflow.com/questions/4721548

点赞
stackoverflow用户346887
stackoverflow用户346887

lua_getstack 做到了这一点,所以不用担心

2011-01-21 10:59:32