在Python中,您可以使用dis
查看用户定义函数的已编译字节码。
Lua是否有内置的等效内容?
这真的很有用!
答案 0 :(得分:7)
标准lua附带的luac
实用程序可以使用其-l
选项从Lua源创建程序集列表。例如,从stdin
上的源代码编译:
C:...> echo a=b | luac -l - main (3 instructions, 12 bytes at 00334C30) 0+ params, 2 slots, 0 upvalues, 0 locals, 2 constants, 0 functions 1 [1] GETGLOBAL 0 -2 ; b 2 [1] SETGLOBAL 0 -1 ; a 3 [1] RETURN 0 1 C:...>
答案 1 :(得分:5)
Chunkspy可能就是你要找的东西。引自网站:
ChunkSpy是一个将Lua 5二进制块拆分为详细列表的工具,然后可以对其进行研究。它的输出与汇编程序的输出列表相似。我想要的东西可以非常详细地告诉我Lua二进制块文件中的内容,而不仅仅是指令。它也是一个学习Lua内部的工具。
答案 2 :(得分:2)
还有lbci,一个字节码检查器库。
答案 3 :(得分:0)
您也可以使用luac -l
编译lua文件并输出反汇编。