summaryrefslogtreecommitdiffhomepage
path: root/libs/core
diff options
context:
space:
mode:
Diffstat (limited to 'libs/core')
-rw-r--r--libs/core/luasrc/debug.lua15
1 files changed, 11 insertions, 4 deletions
diff --git a/libs/core/luasrc/debug.lua b/libs/core/luasrc/debug.lua
index f991ab8a6..d64700e0e 100644
--- a/libs/core/luasrc/debug.lua
+++ b/libs/core/luasrc/debug.lua
@@ -6,13 +6,20 @@ module "luci.debug"
__file__ = debug.getinfo(1, 'S').source:sub(2)
-- Enables the memory tracer with given flags and returns a function to disable the tracer again
-function trap_memtrace(flags)
- flags = flags or "l"
- local tracefile = io.open("/tmp/memtrace", "w")
+function trap_memtrace(flags, dest)
+ flags = flags or "clr"
+ local tracefile = io.open(dest or "/tmp/memtrace", "w")
local function trap(what, line)
local info = debug.getinfo(2, "Sn")
- tracefile:write(info.source..":"..line.."\t"..(info.namewhat or "").."\t"..(info.name or "").."\t"..collectgarbage("count").."\n")
+ if tracefile then
+ tracefile:write(
+ "[", what, "] ", info.source, ":", (line or "?"), "\t",
+ (info.namewhat or ""), "\t",
+ (info.name or ""), "\t",
+ collectgarbage("count"), "\n"
+ )
+ end
end
debug.sethook(trap, flags)