Path: blob/devel/contrib/lua-5.1.5/test/trace-calls.lua
3203 views
-- trace calls1-- example: lua -ltrace-calls bisect.lua23local level=045local function hook(event)6local t=debug.getinfo(3)7io.write(level," >>> ",string.rep(" ",level))8if t~=nil and t.currentline>=0 then io.write(t.short_src,":",t.currentline," ") end9t=debug.getinfo(2)10if event=="call" then11level=level+112else13level=level-1 if level<0 then level=0 end14end15if t.what=="main" then16if event=="call" then17io.write("begin ",t.short_src)18else19io.write("end ",t.short_src)20end21elseif t.what=="Lua" then22-- table.foreach(t,print)23io.write(event," ",t.name or "(Lua)"," <",t.linedefined,":",t.short_src,">")24else25io.write(event," ",t.name or "(C)"," [",t.what,"] ")26end27io.write("\n")28end2930debug.sethook(hook,"cr")31level=0323334