Sets the given function as a hook. The string mask
and the number count
describe when the hook will be called. The string mask may have the following characters, with the given meaning:
"c"
: The hook is called every time Lua calls a function;
"r"
: The hook is called every time Lua returns from a function;
"l"
: The hook is called every time Lua enters a new line of code.
With a count
different from zero, the hook is called after every count
instructions.
When called without arguments, debug.sethook ([thread,] hook, mask [, count])
turns off the hook.
When the hook is called, its first parameter is a string describing the event that has triggered its call: "call"
, "return"
(or "tail return"
), "line"
, and "count"
. For line events, the hook also gets the new line number as its second parameter. Inside a hook, you can call getinfo
with level 2 to get more information about the running function (level 0 is the getinfo
function, and level 1 is the hook function), unless the event is "tail return"
. In this case, Lua is only simulating the return, and a call to getinfo
will return invalid data.