prosody/tools/linedebug.lua
Kim Alvefur 4d9e30aff3 tools/linedebug: Print each line of source executed
The extremely verbose debug output. Nice for getting some idea which
code runs most often, or where it pauses for no reason etc.
2020-10-28 23:05:15 +01:00

18 lines
450 B
Lua

local data = {}
local getinfo = debug.getinfo;
local function linehook(ev, li)
local S = getinfo(2, "S");
if S and S.source and S.source:match"^@" then
local file = S.source:sub(2);
local lines = data[file];
if not lines then
lines = {};
data[file] = lines;
for line in io.lines(file) do
lines[#lines+1] = line;
end
end
io.stderr:write(ev, " ", file, " ", li, " ", lines[li], "\n");
end
end
debug.sethook(linehook, "l");