我真的很喜欢C __LINE__
和__FILE__
... lua提供类似的东西吗? (我发现跟踪printf是有用的......知道哪个文件和消息来自哪条线。)
谢谢!
答案 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。