Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/contrib/lua-5.1.5/test/trace-calls.lua
3203 views
1
-- trace calls
2
-- example: lua -ltrace-calls bisect.lua
3
4
local level=0
5
6
local function hook(event)
7
local t=debug.getinfo(3)
8
io.write(level," >>> ",string.rep(" ",level))
9
if t~=nil and t.currentline>=0 then io.write(t.short_src,":",t.currentline," ") end
10
t=debug.getinfo(2)
11
if event=="call" then
12
level=level+1
13
else
14
level=level-1 if level<0 then level=0 end
15
end
16
if t.what=="main" then
17
if event=="call" then
18
io.write("begin ",t.short_src)
19
else
20
io.write("end ",t.short_src)
21
end
22
elseif t.what=="Lua" then
23
-- table.foreach(t,print)
24
io.write(event," ",t.name or "(Lua)"," <",t.linedefined,":",t.short_src,">")
25
else
26
io.write(event," ",t.name or "(C)"," [",t.what,"] ")
27
end
28
io.write("\n")
29
end
30
31
debug.sethook(hook,"cr")
32
level=0
33
34