web-dev-qa-db-ja.com

Luaの現在の行番号

Luaは、現在のコード行の番号を返すCの__LINE__マクロのようなものをサポートしていますか? Luaには_Gという特別な組み込み変数があることは知っていますが、行番号が表示されません...

36
prideout

Debug.getinfoを使用してLuaから、たとえば、

local line = debug.getinfo(1).currentline

Lua_getinfoを使用してCから(これはluaコード内の行番号を返します)

  lua_Debug ar;
  lua_getstack(L, 1, &ar);
  lua_getinfo(L, "nSl", &ar);
  int line = ar.currentline   

http://www.lua.org/manual/5.1/manual.html#lua_getinfo

http://www.lua.org/manual/5.1/manual.html#pdf-debug.getinfo

50
Tuomas Pelkonen