mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
Change record vmevent parameters. Dump function id on FUNC*.
This commit is contained in:
parent
e1905f498a
commit
e664945e0b
18
lib/dump.lua
18
lib/dump.lua
@ -483,15 +483,21 @@ local function dump_record(tr, func, pc, depth, callee)
|
||||
recdepth = depth
|
||||
recprefix = rep(" .", depth)
|
||||
end
|
||||
local line = bcline(func, pc, recprefix)
|
||||
if dumpmode.H then line = gsub(line, "[<>&]", html_escape) end
|
||||
if type(callee) == "function" then
|
||||
out:write(sub(line, 1, -2), " ; ", fmtfunc(callee), "\n")
|
||||
local line
|
||||
if pc >= 0 then
|
||||
line = bcline(func, pc, recprefix)
|
||||
if dumpmode.H then line = gsub(line, "[<>&]", html_escape) end
|
||||
else
|
||||
line = "0000 "..recprefix.." FUNCC \n"
|
||||
callee = func
|
||||
end
|
||||
if pc <= 0 then
|
||||
out:write(sub(line, 1, -2), " ; ", fmtfunc(func), "\n")
|
||||
else
|
||||
out:write(line)
|
||||
end
|
||||
if band(funcbc(func, pc), 0xff) < 16 then -- Write JMP for cond. ORDER BC
|
||||
out:write(bcline(func, pc+1, recprefix))
|
||||
if pc >= 0 and band(funcbc(func, pc), 0xff) < 16 then -- ORDER BC
|
||||
out:write(bcline(func, pc+1, recprefix)) -- Write JMP for cond.
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -475,18 +475,12 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud)
|
||||
|
||||
case LJ_TRACE_RECORD:
|
||||
setvmstate(J2G(J), RECORD);
|
||||
if (J->pt)
|
||||
lj_vmevent_send(L, RECORD,
|
||||
setintV(L->top++, J->curtrace);
|
||||
setfuncV(L, L->top++, J->fn);
|
||||
setintV(L->top++, proto_bcpos(J->pt, J->pc));
|
||||
setintV(L->top++, J->framedepth);
|
||||
if (bcmode_mm(bc_op(*J->pc)) == MM_call) {
|
||||
cTValue *o = &L->base[bc_a(*J->pc)];
|
||||
if (bc_op(*J->pc) == BC_ITERC) o -= 3;
|
||||
copyTV(L, L->top++, o);
|
||||
}
|
||||
);
|
||||
lj_vmevent_send(L, RECORD,
|
||||
setintV(L->top++, J->curtrace);
|
||||
setfuncV(L, L->top++, J->fn);
|
||||
setintV(L->top++, J->pt ? (int32_t)proto_bcpos(J->pt, J->pc) : -1);
|
||||
setintV(L->top++, J->framedepth);
|
||||
);
|
||||
lj_record_ins(J);
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user