【发布时间】:2010-05-07 04:53:38
【问题描述】:
我真的很喜欢 C 的 __LINE__ 和 __FILE__ ... lua 提供类似的东西吗? (我发现它有助于追踪 printf 的 ... 以了解消息来自哪个文件和哪一行)。
谢谢!
【问题讨论】:
标签: lua
我真的很喜欢 C 的 __LINE__ 和 __FILE__ ... lua 提供类似的东西吗? (我发现它有助于追踪 printf 的 ... 以了解消息来自哪个文件和哪一行)。
谢谢!
【问题讨论】:
标签: lua
function __FILE__() return debug.getinfo(2,'S').source end
function __LINE__() return debug.getinfo(2, 'l').currentline end
未经测试,credit goes here。
【讨论】:
我使用这样的东西从 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。
【讨论】: