Perché convertire WASM in WAT?
WAT è la forma testuale leggibile dall'uomo di WebAssembly. Si converte un .wasm in .wat per leggere, revisionare o eseguire il debug di ciò che un modulo fa effettivamente - le sue funzioni, importazioni ed esportazioni - poiché il binario stesso è illeggibile.
Come convertire WASM in WAT
wasm-tools print OPEN-SOURCE
Dal toolkit della Bytecode Alliance, esegui wasm-tools print module.wasm -o module.wat per scrivere il formato testuale. Ometti -o per stampare su stdout.
wasm2wat (WABT) OPEN-SOURCE
Utilizzando il WebAssembly Binary Toolkit, esegui wasm2wat module.wasm -o module.wat. Aggiungi --generate-names per etichette di funzione leggibili e -f per piegare le espressioni.
Informazioni su questi formati
Un file .wasm contiene un modulo WebAssembly compilato: un bytecode binario portatile prodotto da linguaggi come C, C++ o Rust ed eseguito a velocità quasi nativa. La maggior parte dei file…
Apri dettagli .WASM →Un file .WAT è associato a IBM Voice Type Languages Map, un file di tipo misc.
Apri dettagli .WAT →Qualità e a cosa prestare attenzione
- La conversione è fedele ma non è il sorgente originale: vedrai istruzioni WASM di basso livello, non il codice C/C++/Rust da cui è stato compilato.
- Le funzioni senza nome appaiono come indici numerici a meno che non si passi un flag di generazione nomi, rendendo i moduli grandi difficili da seguire.
- Modificare il WAT e riassemblarlo con wat2wasm è possibile, ma è facile commettere errori per qualsiasi cosa non banale.
Domande frequenti
La conversione wasm-to-wat è lossless?
wasm-tools o wabt - quale dovrei usare?
Posso riconvertire il WAT in .wasm?
wat2wasm module.wat -o module.wasm (WABT) lo riassembla nel binario.Come ottengo nomi di funzione leggibili?
--generate-names a wasm2wat, oppure mantieni la «name section» nella build originale.