Lua C-API: 获取Lua函数调用错误时的行号

当我从C++中调用lua_pcall来调用一个Lua函数时,通常会像这样做:

 const int pcall {lua_pcall(lua_state, 1, 1, 0)};
 if (pcall == LUA_OK){
    ...
    return true;
    // OK!
 }
 std::cerr << "错误:pcall失败。代码:";
 std::cerr << pcall;
 std::cerr << ", '" << lua_tostring(lua_state, -1) << "'\n";
 ...
 // 错误!

这很好,但还不足以确定我在Lua代码中的确切错误- _行_。这是我的终端输出:

错误:pcall失败。代码:2'尝试调用一个空值'
错误:pcall失败。代码:2'尝试调用一个布尔值'
错误:pcall失败。代码:2'尝试调用一个空值'
错误:pcall失败。代码:2'尝试调用一个空值'
错误:pcall失败。代码:2'尝试调用一个用户数据值'

如何检索有关每个错误的更多信息(例如代码行)?

点赞