使い方
test.lua
require "debug_datadumper"
-- Define a shortcut function for testing
function dump(...)
  print(debug.datadumper(...), "\n---")
end
-- Simple types:
dump(8)         --> return 8
dump(true)      --> return true
dump()          --> return nil
dump('Hello')   --> return "Hello"
-- Functions:
f1 = print
function f2() return "Hello" end
do
  local val = 9
  function f3() return val end
end
dump(f1)        --> return print
dump(f2)        --> return loadstring("?LuaQ\000...
dump(f3)
-- Tables:
dump({})        --> return {  }
dump({1,2,3})   --> return { 1, 2, 3 }
dump({a=9,b=2}) --> return { a=9, b=2 }
t1 = setmetatable({1},{2})
t2 = {}; t2.next = t2
t3 = {[false] = true, 'Hello', ["key1"] = 10, ["function"] = "keyword", {1,2} }
setmetatable(t3, {__index = t2})
t3[3] = t2
dump(t1)        --> return setmetatable({ 1 },{ 2 })
dump(t2)
dump(t3)
-- Parameters
dump(t1, 'a')   --> a = setmetatable({ 1 },{ 2 })
dump({}, '')    --> {  }
dump({ { {} } },a,true) --> return {{{},},}