debug.getinfo (function [, what]) |
関数に関する情報をテーブルに入れて返す。
関数を直接指定するか数値を指定することができる。 数値は、関数が走っているコールスタックのレベルを意味し、レベル0は現在の関数 (getinfo 自身)、 レベル1は getinfo を呼び出した関数、レベル2は、getinfoを呼び出した関数を呼び出した関数...。
function がアクティブな関数の数よりも大きい数値であれば getinfo は nil を返す。
what はどのフィールドを埋めるかを文字列で記述する。戻り値のテーブルには lua_getinfo から返されるフィールドがすべて含まれている。 what のデフォルト値では有効なすべての情報を取得する。 もし存在すれば、`f´ オプションは func という名前のフィールドにその関数自身を入れる。
debug.getinfo(print) は print 関数に関するすべての利用可能な情報を持つテーブルを返す。
info = debug.getinfo(print) for k,v in pairs(info) do print(k,v) end --[[ nups 0 what C func function: 00157550 lastlinedefined -1 source =[C] currentline -1 namewhat linedefined -1 short_src [C] --]]
ユーザーが定義した関数について。
nups 0 what Lua func function: 002DB4C8 lastlinedefined 3 source @test.lua currentline -1 namewhat linedefined 1 short_src test.lua
関数の中で利用する場合
function hoge(a,b,c) info = debug.getinfo(1) for k,v in pairs(info) do print(k,v) end end hoge() --[[ source @test.lua what Lua func function: 00E1B4C8 nups 0 short_src test.lua name hoge currentline 2 namewhat global linedefined 1 lastlinedefined 6 >Exit code: 0 --]]