wassail (WebAssembly Static Analyzer und Inspection Library) ist ein Toolkit, um sowohl leichte als auch schwergewicht statische Analyse von Webassembly -Modulen durchzuführen.
Teile von Wassail können hier in Ihrem Webbrowser ausgeführt werden.
Installieren Sie OPAM
Führen Sie opam install core_unix
Führen Sie opam install .
WASSAIL kann eine Reihe von Aufgaben in WebAssembly -Modulen ausführen, sowohl in ihrer textlichen Darstellung ( .wat -Dateien) als auch in ihrer binären Darstellung ( .wasm
$ wassail imports foo.wasm
0 time i32 - > i32
1 ctime i32 - > i32
2 roundf f32 - > f32
...$ wassail exports foo.wasm
11563 atof i32 - > f64
11586 strlen i32 - > i32
11483 fopen i32, i32 - > i32
...Abschnittsgrößen werden in Bytes gemeldet.
$ wassail sizes foo.wasm
1962 type
8724 import
13120 func
0 table
0 memory
23 global
1316 export
0 start
9480 elem
2063620 code
507825 data So generieren Sie das Anrufdiagramm für ein Modul foo.dot :
$ wassail callgraph benchmarks/benchmarksgame/fankuchredux.wat foo.dotAusgangsgrafik:

Sie können entweder einen einzelnen CFG generieren, um beispielsweise die CFG von Funktion 1 aus Datei foo.wat in foo.dot zu generieren:
$ wassail cfg foo.wasm 1 foo.dotOder Sie können alle CFGs in einem bestimmten Verzeichnis generieren:
$ wassail cfgs foo.wat out/Beispielausgabe:

Beiträge sind willkommen! WASSAIL ist unter den Bedingungen der GPLV3.0-Lizenz mit einer nichtkommerziellen Nutzungsklausel lizenziert.
$ make test Sie können hier auf die Weboberfläche zugreifen oder sie wie folgt selbst kompilieren:
$ opam install js_of_ocaml js_of_ocaml-ppx
$ make js
$ open js/index.htmlDie folgenden Veröffentlichungen verwenden WASSAIL: