"Fossies" - the Fresh Open Source Software Archive

Member "redis-5.0.7/deps/lua/test/trace-globals.lua" (19 Nov 2019, 728 Bytes) of package /linux/misc/redis-5.0.7.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Lua source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 -- trace assigments to global variables
    2 
    3 do
    4  -- a tostring that quotes strings. note the use of the original tostring.
    5  local _tostring=tostring
    6  local tostring=function(a)
    7   if type(a)=="string" then
    8    return string.format("%q",a)
    9   else
   10    return _tostring(a)
   11   end
   12  end
   13 
   14  local log=function (name,old,new)
   15   local t=debug.getinfo(3,"Sl")
   16   local line=t.currentline
   17   io.write(t.short_src)
   18   if line>=0 then io.write(":",line) end
   19   io.write(": ",name," is now ",tostring(new)," (was ",tostring(old),")","\n")
   20  end
   21 
   22  local g={}
   23  local set=function (t,name,value)
   24   log(name,g[name],value)
   25   g[name]=value
   26  end
   27  setmetatable(getfenv(),{__index=g,__newindex=set})
   28 end
   29 
   30 -- an example
   31 
   32 a=1
   33 b=2
   34 a=10
   35 b=20
   36 b=nil
   37 b=200
   38 print(a,b,c)