mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-27 22:36:05 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			749 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			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
 | 
