lua中等价于__LINE__和__FILE__的功能?

我真的很喜欢 C 的 __LINE____FILE__ ... Lua 是否提供类似的功能?(我发现这对追踪 printf 是很有用的,以便知道消息来自哪个文件和哪一行)。

谢谢!

原文链接 https://stackoverflow.com/questions/2780500

点赞
stackoverflow用户81179
stackoverflow用户81179
function __FILE__() return debug.getinfo(2,'S').source end
function __LINE__() return debug.getinfo(2, 'l').currentline end

未经测试,原作者署名

2010-05-06 10:59:46
stackoverflow用户30470
stackoverflow用户30470

我在 C 语言端使用以下函数获取行号:

int lua_getline(lua_State* L, int level) {
    lua_Debug ar;
    lua_getstack(L, level, &ar);
    lua_getinfo(L, "l", &ar);
    return ar.currentline;
}

使用 "lS" 调用 lua_getinfo 函数将填充 lua_Debug 结构体的 source 字段,但据我所知它可能并不总是文件名。

2010-05-06 17:42:42