From f065d7884d353c3545535850e4e8bdf8e10025ca Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 6 Dec 2018 00:32:34 +0800 Subject: =?UTF-8?q?*=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/lua-5.1.5/test/trace-globals.lua | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 libs/lua-5.1.5/test/trace-globals.lua (limited to 'libs/lua-5.1.5/test/trace-globals.lua') diff --git a/libs/lua-5.1.5/test/trace-globals.lua b/libs/lua-5.1.5/test/trace-globals.lua new file mode 100644 index 0000000..295e670 --- /dev/null +++ b/libs/lua-5.1.5/test/trace-globals.lua @@ -0,0 +1,38 @@ +-- trace assigments to global variables + +do + -- a tostring that quotes strings. note the use of the original tostring. + local _tostring=tostring + local tostring=function(a) + if type(a)=="string" then + return string.format("%q",a) + else + return _tostring(a) + end + end + + local log=function (name,old,new) + local t=debug.getinfo(3,"Sl") + local line=t.currentline + io.write(t.short_src) + if line>=0 then io.write(":",line) end + io.write(": ",name," is now ",tostring(new)," (was ",tostring(old),")","\n") + end + + local g={} + local set=function (t,name,value) + log(name,g[name],value) + g[name]=value + end + setmetatable(getfenv(),{__index=g,__newindex=set}) +end + +-- an example + +a=1 +b=2 +a=10 +b=20 +b=nil +b=200 +print(a,b,c) -- cgit v1.1-26-g67d0