aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMike Pall <mike>2011-06-28 23:23:34 +0200
committerMike Pall <mike>2011-06-28 23:23:34 +0200
commitdeeb8196c4d4085f3cc5a3389b568de7da739190 (patch)
tree6b5e9840f785f3fff3348ef1c9aee494cdf06431 /lib
parent3dbae4ffc2ba8f6ebf8adf86742521bce6dbf8f8 (diff)
downloadluajit-deeb8196c4d4085f3cc5a3389b568de7da739190.tar.gz
luajit-deeb8196c4d4085f3cc5a3389b568de7da739190.tar.bz2
luajit-deeb8196c4d4085f3cc5a3389b568de7da739190.zip
Reorganize trace linking and track link types.
Diffstat (limited to 'lib')
-rw-r--r--lib/dump.lua14
-rw-r--r--lib/v.lua17
2 files changed, 19 insertions, 12 deletions
diff --git a/lib/dump.lua b/lib/dump.lua
index 5f32eb80..6ada21bc 100644
--- a/lib/dump.lua
+++ b/lib/dump.lua
@@ -504,13 +504,15 @@ local function dump_trace(what, tr, func, pc, otr, oex)
504 if what == "abort" then 504 if what == "abort" then
505 out:write(" ", fmtfunc(func, pc), " -- ", fmterr(otr, oex), "\n") 505 out:write(" ", fmtfunc(func, pc), " -- ", fmterr(otr, oex), "\n")
506 else 506 else
507 local link = traceinfo(tr).link 507 local info = traceinfo(tr)
508 if link == tr then 508 local link, ltype = info.link, info.linktype
509 link = "loop" 509 if link == tr or link == 0 then
510 elseif link == 0 then 510 out:write(" -> ", ltype, "\n")
511 link = "interpreter" 511 elseif ltype == "root" then
512 out:write(" -> ", link, "\n")
513 else
514 out:write(" -> ", link, " ", ltype, "\n")
512 end 515 end
513 out:write(" -> ", link, "\n")
514 end 516 end
515 if dumpmode.H then out:write("</pre>\n\n") else out:write("\n") end 517 if dumpmode.H then out:write("</pre>\n\n") else out:write("\n") end
516 else 518 else
diff --git a/lib/v.lua b/lib/v.lua
index bf61f125..d2a0c235 100644
--- a/lib/v.lua
+++ b/lib/v.lua
@@ -22,7 +22,7 @@
22-- 22--
23-- The output from the first example should look like this: 23-- The output from the first example should look like this:
24-- 24--
25-- [TRACE 1 (command line):1] 25-- [TRACE 1 (command line):1 loop]
26-- [TRACE 2 (1/3) (command line):1 -> 1] 26-- [TRACE 2 (1/3) (command line):1 -> 1]
27-- 27--
28-- The first number in each line is the internal trace number. Next are 28-- The first number in each line is the internal trace number. Next are
@@ -111,15 +111,20 @@ local function dump_trace(what, tr, func, pc, otr, oex)
111 startex, startloc, fmterr(otr, oex))) 111 startex, startloc, fmterr(otr, oex)))
112 end 112 end
113 elseif what == "stop" then 113 elseif what == "stop" then
114 local link = traceinfo(tr).link 114 local info = traceinfo(tr)
115 if link == 0 then 115 local link, ltype = info.link, info.linktype
116 if ltype == "interpreter" then
116 out:write(format("[TRACE %3s %s%s -- fallback to interpreter]\n", 117 out:write(format("[TRACE %3s %s%s -- fallback to interpreter]\n",
117 tr, startex, startloc)) 118 tr, startex, startloc))
118 elseif link == tr then 119 elseif link == tr or link == 0 then
119 out:write(format("[TRACE %3s %s%s]\n", tr, startex, startloc)) 120 out:write(format("[TRACE %3s %s%s %s]\n",
120 else 121 tr, startex, startloc, ltype))
122 elseif ltype == "root" then
121 out:write(format("[TRACE %3s %s%s -> %d]\n", 123 out:write(format("[TRACE %3s %s%s -> %d]\n",
122 tr, startex, startloc, link)) 124 tr, startex, startloc, link))
125 else
126 out:write(format("[TRACE %3s %s%s -> %d %s]\n",
127 tr, startex, startloc, link, ltype))
123 end 128 end
124 else 129 else
125 out:write(format("[TRACE %s]\n", what)) 130 out:write(format("[TRACE %s]\n", what))