python lua bytecode disassembly

Lua equivalente a Python dis()?



bytecode disassembly (4)

En Python tiene la capacidad de ver el código de bytes compilado de una función definida por el usuario usando dis .

¿Hay un builtin equivalente a esto para Lua?

¡Sería realmente útil!


La utilidad luac que viene con lua estándar puede crear una lista de ensamblaje desde la fuente Lua usando su opción -l . Por ejemplo, compilar desde la fuente en 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:...>



También puede usar luac -l para compilar un archivo lua y generar el desensamblaje.


Chunkspy podría ser lo que estás buscando. Citando desde el sitio:

ChunkSpy es una herramienta para desmontar un fragmento binario de Lua 5 en una lista detallada que luego se puede estudiar. Su salida se asemeja a la lista de salida de ensambladores. Quería algo que me diga con gran detalle lo que sucede dentro de un archivo binario Lua, no solo las instrucciones. Está destinado a ser una herramienta para aprender también los internos de Lua.