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 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" ,
when simulating a return from a tail call),
"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. |