aboutsummaryrefslogtreecommitdiffstats
path: root/tools/linedebug.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2020-11-05 22:31:25 +0100
committerKim Alvefur <zash@zash.se>2020-11-05 22:31:25 +0100
commit238b2bfc1cdb65ae7d051c2f29c1427149317795 (patch)
tree58547de6e7795740633c1b93e67c217eb621fe8f /tools/linedebug.lua
parentce3e3808f5359f481f3ea063220ba71428b26ad5 (diff)
parent48521ba1538f797f5bef64f5fe5f3a9fb6e68f7f (diff)
downloadprosody-238b2bfc1cdb65ae7d051c2f29c1427149317795.tar.gz
prosody-238b2bfc1cdb65ae7d051c2f29c1427149317795.zip
Merge 0.11->trunk
Diffstat (limited to 'tools/linedebug.lua')
-rw-r--r--tools/linedebug.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/linedebug.lua b/tools/linedebug.lua
new file mode 100644
index 00000000..96214cc8
--- /dev/null
+++ b/tools/linedebug.lua
@@ -0,0 +1,18 @@
+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");