debugging - Lua - Lua 库中是否有与 debug.getupvalues / debug.getupvalue 相同或相似的不同函数?
问题描述
是否有可能或者在我可以使用的 lua 库中是否有类似于 debug.getupvalues / debug.getupvalue 的函数,因为我将无法很快使用,我稍微依赖它们来保留部分我有工作的代码。
此外,如果我可以获得 debug.getupvalue 的函数代码,那将是一个很大的帮助,因为我可以将它用作函数而不是再使用调试库,尽管我怀疑它是 Lua 中的代码。
在你说之前,是的,我知道调试库是所有 Lua 中最不可靠的库,但它使我的代码工作,我想找到一种方法在为时已晚之前停止使用它。
解决方案
该debug
库不适用于生产代码(与测试和异常调试情况相反)。有 3 种可能的解决方案。其中两个需要更改定义闭包的代码。另一个要求你知道 C:
在与 upvalues 相同的范围内添加更多闭包,这将为您提供所需的访问权限。
使用表而不是闭包。
编写一个使用
lua_getupvalue
.
要查看源代码debug.getupvalue
,请下载Lua 5.3.5并查看src/ldblib.c
第 260 行。lua_getupvalue
在src/lapi.c
第 1222 行。
推荐阅读
- azure-devops - Azure DevOps 中的聊天功能
- odoo - 为什么这个域没有给我结果?
- python - CP-SAT 中的性能问题
- sql - 从日期范围计算特定日期的分钟数
- google-cloud-platform - 如何使用 Airflow 将 BigQuery 分区导出到 GCS
- java - 从 excel 文件中读取并加载到 SOAP UI 请求中
- javascript - 可以使用 Workbox 缓存策略在页面请求图像之前预加载图像吗?
- elasticsearch - 当自定义分析器明确不使用它时,仍会应用 Elasticsearch 小写过滤器
- android - 在使用数据绑定和 MVVM 将新数据放入活动之前,旧视图数据会短暂出现在活动中
- python - 如何在两个不同的数据框中搜索一个值并将其添加到第三个?