Lua中相当于Python dis()的方法?

7 投票
4 回答
1703 浏览
提问于 2025-04-16 05:04

在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:...> 

撰写回答