Software /
code /
prosody
Annotate
tools/linedebug.lua @ 12056:e62025f949f9
mod_smacks: Limit queue memory consumption using new util
This brings back the queue size limit that was once added, then removed
because destroying the session when reaching the limit was not great.
Instead, the queue wraps and overwrites the oldest unacked stanza on the
assumption that it will probably be acked anyway and thus does not need
to be delivered. If those discarded stanzas turn out to be needed on
resumption then the resumption fails.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 14 Dec 2021 20:00:45 +0100 |
parent | 11193:5850d24a4ad3 |
rev | line source |
---|---|
11193
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"); |