En Python, vous avez la possibilité d'afficher le bytecode compilé d'une fonction définie par l'utilisateur à l'aide de dis
.Lua équivalent à Python dis()?
Y a-t-il un équivalent intégré à cela pour Lua?
Ce serait vraiment utile!
En Python, vous avez la possibilité d'afficher le bytecode compilé d'une fonction définie par l'utilisateur à l'aide de dis
.Lua équivalent à Python dis()?
Y a-t-il un équivalent intégré à cela pour Lua?
Ce serait vraiment utile!
Chunkspy peut être ce que vous cherchez. Citant du site:
ChunkSpy est un outil permettant de désassembler un bloc binaire Lua 5 en une liste détaillée qui peut ensuite être étudiée. Sa sortie ressemble à la liste de sortie des assembleurs. Je voulais quelque chose qui puisse me dire en détail ce qui se passe à l'intérieur d'un fichier Lua binaire, pas seulement les instructions. Il est destiné à être un outil pour apprendre les internes Lua ainsi.
L'utilitaire luac
qui vient avec lua standard peut créer une liste de montage de la source Lua en utilisant son option -l
. Par exemple, la compilation de la source sur 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:...>
Vous pouvez également utiliser luac -l
pour compiler un fichier lua et la sortie du démontage.
Il existe également lbci, une bibliothèque d'inspecteurs de code-bytecode.