mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Add recursive dump option to jit.bc.dump().
This commit is contained in:
parent
0c8696dfbf
commit
9da94d1355
@ -125,9 +125,16 @@ local function bctargets(func)
|
||||
end
|
||||
|
||||
-- Dump bytecode instructions of a function.
|
||||
local function bcdump(func, out)
|
||||
local function bcdump(func, out, all)
|
||||
if not out then out = stdout end
|
||||
local fi = funcinfo(func)
|
||||
if all and fi.children then
|
||||
for n=-1,-1000000000,-1 do
|
||||
local k = funck(func, n)
|
||||
if not k then break end
|
||||
if type(k) == "proto" then bcdump(k, out, true) end
|
||||
end
|
||||
end
|
||||
out:write(format("-- BYTECODE -- %s-%d\n", fi.loc, fi.lastlinedefined))
|
||||
local target = bctargets(func)
|
||||
for pc=1,1000000000 do
|
||||
|
@ -193,6 +193,8 @@ LJLIB_CF(jit_util_funcinfo)
|
||||
setintfield(L, t, "currentline", lj_debug_line(pt, pc));
|
||||
lua_pushboolean(L, (pt->flags & PROTO_VARARG));
|
||||
lua_setfield(L, -2, "isvararg");
|
||||
lua_pushboolean(L, (pt->flags & PROTO_CHILD));
|
||||
lua_setfield(L, -2, "children");
|
||||
setstrV(L, L->top++, proto_chunkname(pt));
|
||||
lua_setfield(L, -2, "source");
|
||||
lj_debug_pushloc(L, pt, pc);
|
||||
|
Loading…
Reference in New Issue
Block a user