Software / code / prosody
Annotate
tools/linedebug.lua @ 13832:5973a5d22ab5 13.0
mod_storage_sql: Delay showing SQL library error until attempted load
This should ensure that e.g. failure to load LuaSQLite3 is not logged
unless it is needed, since module failures are very verbose.
Closes #1919
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 07 Apr 2025 20:23:00 +0200 |
| 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"); |