tools/linedebug.lua
author Kim Alvefur <zash@zash.se>
Wed, 21 Jul 2021 23:02:25 +0200
changeset 11726 bc2d3f110a39
parent 11197 5850d24a4ad3
permissions -rw-r--r--
mod_pep: Remove use of RLU cache when persist_items was set to false This behavior came from some confusion over the meaning of persist_items. The correct behavior is that items are only stored when it is set to true. When set to false, the service becomes a "pure" publish-subscribe service, where items are forgotten immediately after broadcasting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11197
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
local data = {}
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
local getinfo = debug.getinfo;
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
local function linehook(ev, li)
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
	local S = getinfo(2, "S");
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
	if S and S.source and S.source:match"^@" then
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
		local file = S.source:sub(2);
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
		local lines = data[file];
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
		if not lines then
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
			lines = {};
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
			data[file] = lines;
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
			for line in io.lines(file) do
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
				lines[#lines+1] = line;
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
			end
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
		end
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
		io.stderr:write(ev, " ", file, " ", li, " ", lines[li], "\n");
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
	end
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
end
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
debug.sethook(linehook, "l");