debug.sethook()
#!/usr/bin/env lua function foo(x) print("in foo()", x) end debug.sethook(foo, "c") print("0") foo() print("1") foo() print("2") debug.sethook() print("3") foo() print("4")
で、
in foo() call in foo() call 0 in foo() call in foo() call in foo() call in foo()in foo() call nil in foo() call in foo() call 1 in foo() call in foo() call in foo() call in foo()in foo() call nil in foo() call in foo() call 2 in foo() call 3 in foo() nil 4
#!/usr/bin/env lua function foo(x) print("in foo()", x) end debug.sethook(foo, "r") print("0") foo() print("1") foo() print("2") debug.sethook() print("3") foo() print("4")
で、
in foo() return in foo() return 0 in foo() return in foo() return in foo()in foo() return nil in foo() return in foo() return in foo() return 1 in foo() return in foo() return in foo()in foo() return nil in foo() return in foo() return in foo() return 2 in foo() return 3 in foo() nil 4
#!/usr/bin/env lua function foo(x, y) print("in foo()", x, y) end debug.sethook(foo, "l") print("0") foo() print("1") foo() print("2") debug.sethook() print("3") foo() print("4")
で、
0 in foo() line 10 in foo() line 4 in foo() nil nil in foo() line 5 in foo() line 11 1 in foo() line 12 in foo() line 4 in foo() nil nil in foo() line 5 in foo() line 13 2 in foo() line 15 3 in foo() nil nil 4