Waarom WASM naar WAT converteren?
WAT is de voor mensen leesbare tekstvorm van WebAssembly. Men converteert een .wasm naar .wat om te lezen, te auditen of te debuggen wat een module daadwerkelijk doet - de functies, imports en exports - aangezien de binary zelf onleesbaar is.
Hoe WASM naar WAT te converteren
wasm-tools print OPEN-SOURCE
Gebruik de toolkit van de Bytecode Alliance en voer wasm-tools print module.wasm -o module.wat uit om het tekstformaat weg te schrijven. Laat -o weg om naar de stdout te printen.
wasm2wat (WABT) OPEN-SOURCE
Gebruik de WebAssembly Binary Toolkit en voer wasm2wat module.wasm -o module.wat uit. Voeg --generate-names toe voor leesbare functielabels en -f om expressies te vouwen.
Over deze formaten
Een .wasm-bestand bevat een gecompileerde WebAssembly-module: draagbare binaire bytecode geproduceerd uit talen zoals C, C++ of Rust en uitgevoerd op bijna-native snelheid. De meeste…
Open .WASM details →Een .WAT-bestand is gekoppeld aan IBM Voice Type Languages Map, een misc-bestand.
Open .WAT details →Kwaliteit & waar op te letten
- De conversie is getrouw maar niet de originele broncode: u ziet low-level WASM-instructies, niet de C/C++/Rust waaruit het is gecompileerd.
- Naamloze functies verschijnen als numerieke indices tenzij u een vlag voor het genereren van namen meegeeft, wat grote modules lastig te volgen maakt.
- Het bewerken van de WAT en opnieuw assembleren met wat2wasm is mogelijk, maar foutgevoelig voor alles wat niet triviaal is.
Veelgestelde vragen
Is wasm-to-wat verliesvrij?
wasm-tools of wabt - welke moet ik gebruiken?
Kan ik de WAT terug converteren naar .wasm?
wat2wasm module.wat -o module.wasm (WABT) assembleert het opnieuw naar de binary.Hoe krijg ik leesbare functienamen?
--generate-names mee aan wasm2wat, of behoud de „name section” in de originele build.