Mercurial > prosody-hg
comparison tools/linedebug.lua @ 11193:5850d24a4ad3
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.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 28 Oct 2020 23:05:15 +0100 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 11192:11f285a439a4 | 11193:5850d24a4ad3 |
|---|---|
| 1 local data = {} | |
| 2 local getinfo = debug.getinfo; | |
| 3 local function linehook(ev, li) | |
| 4 local S = getinfo(2, "S"); | |
| 5 if S and S.source and S.source:match"^@" then | |
| 6 local file = S.source:sub(2); | |
| 7 local lines = data[file]; | |
| 8 if not lines then | |
| 9 lines = {}; | |
| 10 data[file] = lines; | |
| 11 for line in io.lines(file) do | |
| 12 lines[#lines+1] = line; | |
| 13 end | |
| 14 end | |
| 15 io.stderr:write(ev, " ", file, " ", li, " ", lines[li], "\n"); | |
| 16 end | |
| 17 end | |
| 18 debug.sethook(linehook, "l"); |
