lua等于__LINE__和__FILE__?

时间:2010-05-06 10:57:18

标签: lua

我真的很喜欢C __LINE____FILE__ ... lua提供类似的东西吗? (我发现跟踪printf是有用的......知道哪个文件和消息来自哪条线。)

谢谢!

2 个答案:

答案 0 :(得分:13)

function __FILE__() return debug.getinfo(2,'S').source end
function __LINE__() return debug.getinfo(2, 'l').currentline end

未经测试,credit goes here

答案 1 :(得分:3)

我使用类似的东西从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结构的源字段,尽管它可能并不总是文件名IIRC。