【发布时间】:2019-08-02 08:51:23
【问题描述】:
我发现你可以在 chrome 中以开发者模式查看 wasm 模块,我还发现了一个 chromium 标志 here,但是我想使用不同的浏览器来转储 wasm 文件。 我该怎么做?
【问题讨论】:
我发现你可以在 chrome 中以开发者模式查看 wasm 模块,我还发现了一个 chromium 标志 here,但是我想使用不同的浏览器来转储 wasm 文件。 我该怎么做?
【问题讨论】:
在写完下面的答案后,我意识到我没有回答您的问题。似乎 chrome 标志需要 asm.js 并允许您下载生成的 wasm(如果我理解正确的话)。不确定如何在其他浏览器中执行此操作,但如今大多数 wasm 只是一个文件,您可以像下载任何其他文件一样下载它。如果碰巧有帮助,请在下面给出上一个答案。
.wasm 文件应该作为文件下载到浏览器中。您可以使用 safari 和 firefox(以及 chrome)中的开发人员工具来查看页面发出的请求并下载必要的文件。
在 Safari 和 Firefox 中,您可以查看 Web Inspector,单击“网络”选项卡并从那里下载文件。
【讨论】:
正如您通过提到 Chromium 标志所建议的那样,可以在 chrome 中查看二进制 wasm 文件的文本表示形式,在 Firefox 中也可以。这是一篇关于该过程的文章,它解释了为此需要生成源映射的必要性。请注意,生成源映射的机制因编译器而异。
http://webassemblycode.com/using-browsers-debug-webassembly/
如果您通过“dump wasm”询问如何将文本表示从浏览器下载到文件系统,我认为最简单的方法是下载 wasm 文件,如上面的海报所建议,然后转换使用像 binaryen 这样的命令行工具从二进制到文本。我假设这里是 linux 操作系统,但 Windows 的步骤类似。
下载并编译binaryen。
https://github.com/WebAssembly/binaryen
您可以在以下位置找到 wasm-dis 实用程序:
binaryen/build/bin
执行
./wasm-dis file.wasm > file.wat
这会将反汇编的 .wasm 导入到 file.wat 中,可以在任何文本编辑器中查看或通过执行:
cat file.wat
【讨论】: