Dlaczego konwertować WASM na WAT?
WAT to czytelna dla człowieka tekstowa postać WebAssembly. Ludzie konwertują .wasm na .wat, aby czytać, audytować lub debugować to, co moduł faktycznie robi - jego funkcje, importy i eksporty - ponieważ sam plik binarny jest nieczytelny.
Jak przekonwertować WASM na WAT
wasm-tools print OPEN-SOURCE
Z zestawu narzędzi Bytecode Alliance, uruchom wasm-tools print module.wasm -o module.wat, aby zapisać format tekstowy. Pomiń -o, aby wypisać wynik do standardowego wyjścia (stdout).
wasm2wat (WABT) OPEN-SOURCE
Używając WebAssembly Binary Toolkit, uruchom wasm2wat module.wasm -o module.wat. Dodaj --generate-names dla czytelnych etykiet funkcji i -f, aby zwinąć (fold) wyrażenia.
O tych formatach
Plik .wasm zawiera skompilowany moduł WebAssembly: przenośny binarny kod bajtowy (bytecode) wygenerowany z języków takich jak C, C++ lub Rust, który działa z prędkością zbliżoną do…
Otwórz szczegóły .WASM →Plik .WAT jest powiązany z IBM Voice Type Languages Map, który jest plikiem typu misc.
Otwórz szczegóły .WAT →Jakość i na co uważać
- Konwersja jest wierna, ale nie jest to oryginalny kod źródłowy: widzisz niskopoziomowe instrukcje WASM, a nie kod C/C++/Rust, z którego został skompilowany.
- Nienazwane funkcje pojawiają się jako indeksy numeryczne, chyba że przekażesz flagę generowania nazw, co utrudnia analizę dużych modułów.
- Edycja WAT i ponowna asemblacja za pomocą wat2wasm jest możliwa, ale łatwo o błąd w przypadku czegokolwiek nietrywialnego.
Najczęściej zadawane pytania
Czy wasm-to-wat jest bezstratne?
wasm-tools czy wabt - którego powinienem użyć?
Czy mogę przekonwertować WAT z powrotem na .wasm?
wat2wasm module.wat -o module.wasm (WABT) ponownie składa go do postaci binarnej.Jak uzyskać czytelne nazwy funkcji?
--generate-names do wasm2wat lub zachowaj sekcję nazw (name section) w oryginalnej kompilacji.