lua_Hooktypedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
Type for debugging hook functions.
Whenever a hook is called, its ar argument has its field
event set to the specific event that triggered the hook.
Lua identifies these events with the following constants:
LUA_HOOKCALL, LUA_HOOKRET,
LUA_HOOKTAILRET, LUA_HOOKLINE,
and LUA_HOOKCOUNT.
Moreover, for line events, the field currentline is also set.
To get the value of any other field in ar,
the hook must call lua_getinfo.
For return events, event may be LUA_HOOKRET,
the normal value, or LUA_HOOKTAILRET.
In the latter case, Lua is simulating a return from
a function that did a tail call;
in this case, it is useless to call lua_getinfo.
While Lua is running a hook, it disables other calls to hooks. Therefore, if a hook calls back Lua to execute a function or a chunk, this execution occurs without any calls to hooks.