【问题标题】:How to dump wasm?如何倾倒wasm?
【发布时间】:2019-08-02 08:51:23
【问题描述】:

我发现你可以在 chrome 中以开发者模式查看 wasm 模块,我还发现了一个 chromium 标志 here,但是我想使用不同的浏览器来转储 wasm 文件。 我该怎么做?

【问题讨论】:

    标签: webassembly wasm-bindgen


    【解决方案1】:

    在写完下面的答案后,我意识到我没有回答您的问题。似乎 chrome 标志需要 asm.js 并允许您下载生成的 wasm(如果我理解正确的话)。不确定如何在其他浏览器中执行此操作,但如今大多数 wasm 只是一个文件,您可以像下载任何其他文件一样下载它。如果碰巧有帮助,请在下面给出上一个答案。


    .wasm 文件应该作为文件下载到浏览器中。您可以使用 safari 和 firefox(以及 chrome)中的开发人员工具来查看页面发出的请求并下载必要的文件。

    在 Safari 和 Firefox 中,您可以查看 Web Inspector,单击“网络”选项卡并从那里下载文件。

    【讨论】:

    • 虽然我知道如何在“网络”选项卡中查看 wasm,但我需要下载文件以便使用脚本对其进行分析。不过感谢您的回复。
    • 你应该可以点击那些文件直接下载?
    【解决方案2】:

    正如您通过提到 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 2020-08-24
      相关资源
      最近更新 更多