Files
itgmania212121/stepmania/src/lua-5.1/test/trace-calls.lua
T
Glenn Maynard 4564b0d5a2 Update to Lua 5.1.
This is normally statically linked in releases.  Lua also needs
some patching in Linux x86 to fix performance issues related
to alignment, will need patching if we want fine-grained threading,
and generally has an odd "build it yourself" design, so let's
just add embed this one.  (note: disable PCH for these files
in VC, and don't add lua.c, luac.c, or print.c to the project)
2006-09-25 07:35:34 +00:00

33 lines
749 B
Lua

-- trace calls
-- example: lua -ltrace-calls bisect.lua
local level=0
local function hook(event)
local t=debug.getinfo(3)
io.write(level," >>> ",string.rep(" ",level))
if t~=nil and t.currentline>=0 then io.write(t.short_src,":",t.currentline," ") end
t=debug.getinfo(2)
if event=="call" then
level=level+1
else
level=level-1 if level<0 then level=0 end
end
if t.what=="main" then
if event=="call" then
io.write("begin ",t.short_src)
else
io.write("end ",t.short_src)
end
elseif t.what=="Lua" then
-- table.foreach(t,print)
io.write(event," ",t.name or "(Lua)"," <",t.linedefined,":",t.short_src,">")
else
io.write(event," ",t.name or "(C)"," [",t.what,"] ")
end
io.write("\n")
end
debug.sethook(hook,"cr")
level=0