diff options
author | antirez <antirez@gmail.com> | 2011-04-30 16:15:30 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2011-05-25 12:32:43 +0200 |
commit | 21d3294c7013a4385aebd84436394bb58e273093 (patch) | |
tree | 865bb98821fbc2c0d0fa618bf6297efd4c2cefef /deps/lua/test/trace-globals.lua | |
parent | efc3408748061a08ec5ff18e392c30f31f5094a2 (diff) | |
download | redis-21d3294c7013a4385aebd84436394bb58e273093.tar.gz |
makefile adapted to link against lua lib and to pass the 32bit flag to Lua building system
Diffstat (limited to 'deps/lua/test/trace-globals.lua')
-rw-r--r-- | deps/lua/test/trace-globals.lua | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/deps/lua/test/trace-globals.lua b/deps/lua/test/trace-globals.lua new file mode 100644 index 000000000..295e670ca --- /dev/null +++ b/deps/lua/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) |