Hardware Design: SIE
Sign in or create your account | Project List | Help
Hardware Design: SIE Git Source Tree
Root/
| 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 |
Branches:
master
