Lua中的当前行号

pri*_*out 36 lua

Lua是否支持C的__LINE__宏,它返回当前代码行的编号?我知道Lua有一个特殊的内置变量叫_G,但我看不到行号...

Tuo*_*nen 50

来自Lua使用debug.getinfo,例如,

local line = debug.getinfo(1).currentline
Run Code Online (Sandbox Code Playgroud)

从C使用lua_getinfo(这将返回lua代码中的linenumber)

  lua_Debug ar;
  lua_getstack(L, 1, &ar);
  lua_getinfo(L, "nSl", &ar);
  int line = ar.currentline   
Run Code Online (Sandbox Code Playgroud)

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

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

  • 这是否适用于Lua 5.3.我在Windows中遇到了访问冲突错误.对于将脚本作为文件和变量(dofile和doscript调用)执行时的情况也适用吗? (2认同)
  • @TrustyCoder 我有同样的问题。这只适用于 lua 函数的 C 实现。在 pcall 尝试查看出了什么问题后它不起作用,我也遇到了异常。(所以我让我的函数错误处理程序在其错误字符串中包含此信息)。 (2认同)