Lua C-API:在lua函数调用期间发生错误时获取行

时间:2018-07-16 14:21:11

标签: error-handling lua c-api

当我从C ++调用lua_pcall以调用 Lua函数时,我通常会执行以下操作:

 const int pcall {lua_pcall(lua_state, 1, 1, 0)};
 if (pcall == LUA_OK){      
    ...
    return true;
    // OK!
 }
 std::cerr << "Error: pcall failed. Code: ";
 std::cerr << pcall;
 std::cerr << ", '" << lua_tostring(lua_state, -1) << "'\n";
 ...
 // ERROR!

这很好,但不足以确定我的lua代码中的确切错误- line 。这是我的终端输出:

Error: pcall failed. Code: 2, 'attempt to call a nil value'
Error: pcall failed. Code: 2, 'attempt to call a boolean value'
Error: pcall failed. Code: 2, 'attempt to call a nil value'
Error: pcall failed. Code: 2, 'attempt to call a nil value'
Error: pcall failed. Code: 2, 'attempt to call a userdata value'

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

0 个答案:

没有答案