Sets the given function as a hook.
mask and the number
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.
count different from zero,
the hook is called after every
When called without arguments,
debug.sethook turns off the hook.
When the hook is called, its first parameter is a string
describing the event that has triggered its call:
when simulating a return from a tail call),
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
and level 1 is the hook function),
unless the event is
In this case, Lua is only simulating the return,
and a call to
getinfo will return invalid data.