在Lua脚本中捕获并列出全局变量

在Lua脚本中捕获并列出全局变量,lua,Lua,如何迭代整个脚本以捕获所有全局变量的列表 我知道_G是环境表,它包含所有全局变量,但实际上它包含所有全局变量。我只希望脚本中的全局变量而不是\u G本身是全局变量,\u G是一个运行时表(因此只能在特定运行期间的某个点列出)。您是对的,它将列出由脚本、Lua状态初始化和其他使用的脚本设置的全局变量 查找编译器将绑定为全局变量的变量标识符的一种方法是使用luac命令行工具: luac -l script.lua | grep [SG]ETGLOBAL 第二列给出了行号。最后一列(注释)给出了标识

如何迭代整个脚本以捕获所有全局变量的列表


我知道_G是环境表,它包含所有全局变量,但实际上它包含所有全局变量。我只希望脚本中的全局变量而不是
\u G
本身是全局变量,
\u G
是一个运行时表(因此只能在特定运行期间的某个点列出)。您是对的,它将列出由脚本、Lua状态初始化和其他使用的脚本设置的全局变量

查找编译器将绑定为全局变量的变量标识符的一种方法是使用
luac
命令行工具:

luac -l script.lua | grep [SG]ETGLOBAL

第二列给出了行号。最后一列(注释)给出了标识符。

Try
[SG]ETGLOBAL
仅在Lua 5.1之前有效。对于Lua 5.2+,请使用
[SG]ETTABUP..\u ENV
。看见