Lua-Lua库中是否有一个与debug.getupvalues / debug.getupvalue相同或相似的函数?

时间:2018-08-01 07:43:45

标签: debugging lua

我可以使用lua库中是否有可能与debug.getupvalues / debug.getupvalue类似的功能,因为我将很快无法使用,因此我会稍微依赖它们我正在使用的部分代码。

如果我可以获取debug.getupvalue的函数代码,那将是一个很大的帮助,因为我可以将其用作函数,而不再使用调试库,尽管我怀疑它是Lua中的代码。

在您说出来之前,是的,我知道调试库是所有Lua中最不依赖的库,但是它使我的代码正常工作,我想找到一种在太晚之前停止使用它的方法。

1 个答案:

答案 0 :(得分:0)

debug库并不打算在生产代码中使用(与测试和异常调试情况相对)。有3种可能的解决方案。其中两个需要更改定义闭包的代码。另一个要求您知道C:

  1. 在与upvalue相同的作用域中添加更多闭包,这些闭包将为您提供所需的访问权限。

  2. 使用表代替闭包。

  3. 编写一个使用lua_getupvalue的C库。

要查看debug.getupvalue的源代码,请下载Lua 5.3.5并查看src/ldblib.c,第260行。lua_getupvaluesrc/lapi.c,第1222行。 / p>