Lua中相当于Python dis()的方法?
在Python中,你可以使用dis
这个工具查看自己定义的函数的编译字节码。
那么在Lua中,有没有类似的内置功能呢?
这会非常有用!
4 个回答
2
还有一个叫做 lbci 的库,它可以用来检查字节码。
5
Chunkspy 可能正是你需要的工具。网站上是这么说的:
ChunkSpy 是一个可以将 Lua 5 的二进制块拆解成详细列表的工具,这样你就可以研究它。它的输出结果和汇编器的输出有点像。我想要一个能详细告诉我 Lua 二进制块文件内部发生了什么的工具,不仅仅是指令。这个工具也旨在帮助人们学习 Lua 的内部工作原理。
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:...>