Remove debug module

This commit is contained in:
Lars Mueller 2022-07-03 13:33:44 +02:00
parent 5a8978f93d
commit 83ff2728e3
2 changed files with 0 additions and 57 deletions

@ -277,10 +277,6 @@ This is best left explicit. First, you shouldn't be using numbered field keys if
4. [`json`](https://json.org) 4. [`json`](https://json.org)
* Not recommended * Not recommended
## `debug`
`modlib.debug` offers utilities dumping program state in tables.
### `variables(stacklevel)` ### `variables(stacklevel)`
Dumps local variables, upvalues and the function environment of the function at the given stacklevel (default `1`). Dumps local variables, upvalues and the function environment of the function at the given stacklevel (default `1`).

@ -1,53 +0,0 @@
-- Localize globals
local _G, debug, getfenv, table, tostring = _G, debug, getfenv, table, tostring
-- Set environment
local _ENV = {}
setfenv(1, _ENV)
function variables(stacklevel)
stacklevel = (stacklevel or 1) + 1
local locals = {}
local index = 1
while true do
local name, value = debug.getlocal(stacklevel, index)
if not name then break end
table.insert(locals, {name, value})
index = index + 1
end
local upvalues = {}
local func = debug.getinfo(stacklevel).func
local fenv = getfenv(func)
index = 1
while true do
local name, value = debug.getupvalue(func, index)
if not name then break end
table.insert(upvalues, {name, value})
index = index + 1
end
return {
locals = locals,
upvalues = upvalues,
fenv = fenv,
fenv_global = fenv == _G
}
end
function stack(stacklevel)
stacklevel = (stacklevel or 1) + 1
local stack = {}
while true do
local info = debug.getinfo(stacklevel, "nfSlu")
if not info then
break
end
info.func = tostring(info.func)
info.variables = variables(stacklevel)
stack[stacklevel - 1] = info
stacklevel = stacklevel + 1
end
return stack
end
-- Export environment
return _ENV