Lua には関数がutils.debug()
あり、次のように Lua コードで使用したいと考えています。
function Foo:doSomething
if (/* something */) then
print("Success!")
else
utils.debug()
end
end
function Foo:doSomethingElse
if (/* something else */) then
print("Awesome!")
else
utils.debug()
end
end
デバッグを支援するために、Lua コード全体で使用したいと考えています。utils.debug()
その結果、Lua コードのどこから呼び出されたのかを C++ コードに認識させたいと考えています。私が調べたところlua_Debug
、lua_getinfo
それらは私が望むものにかなり近いようですが、ピースがありません:
int MyLua::debug(lua_State* L)
{
lua_Debug ar;
lua_getstack(L, 1, &ar);
lua_getinfo(L, ??????, &ar);
// print out relevant info from 'ar'
// such as in what function it was called, line number, etc
}
これは lua_Debug 構造体の目的ですか、それともこれを行うために使用する必要がある別の機能または方法はありますか?