Lua相当于Python dis()?

时间:2010-10-06 13:19:52

标签: python lua bytecode disassembly

在Python中,您可以使用dis查看用户定义函数的已编译字节码。

Lua是否有内置的等效内容?

这真的很有用!

4 个答案:

答案 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文件并输出反汇编。