#wasm-binary #source-map #debugging #wasm #cargo-command

app cargo-wasm2map

用于生成包含 DWARF 调试信息的 .wasm 文件的源映射的 Cargo 命令

1 个不稳定版本

0.1.0 2023 年 4 月 19 日

#21#source-map

MIT/Apache

41KB
563

Cargo WASM 源映射工具

Build status crates.io Documentation Min Rust 1.64.0

生成浏览器支持的源映射,用于包含 DWARF 调试信息的 WASM 二进制文件,并将其与 WASM 二进制文件关联,以便在浏览器中加载时,您可以在调试面板和控制台看到 rust 行、字符和源代码(如果可用)。

注意:可以构建不包含不安全代码的版本(唯一的不安全代码与使用 memmap2 包有关)。

之前

Before WASM sourcemapping

之后

After WASM sourcemapping

使用方法

  1. 使用 Cargo 手动预处理您的 WASM 二进制文件,然后再提供服务
 cargo install cargo-wasm2map

 # Build your WASM binary the way you usually do
 cargo build --target wasm32-unknown-unknown

# Generate sourcemap for the target WASM (replace myproject with your project
# name).
 cargo wasm2map target/wasm32-unknown-unknown/debug/myproject.wasm \
    -patch -base-url https://127.0.0.1:8080

 # Serve the WASM to your browser... (i.e. https://127.0.0.1:8080 or wherever
 # your index.html is)
  1. 将其作为库用于您的工具
use wasm2map::WASM;

let mapper = WASM::load("/path/to/the/file.wasm");
    if let Ok(mut mapper) = mapper {
        let sourcemap = mapper.map_v3();
        mapper.patch("https://127.0.0.1:8080").expect("Failed to patch");
}

当前限制

  • 目前它不将源代码打包到源映射中,因此在浏览器中无法进行源代码浏览

贡献

欢迎您的贡献,特别是错误报告和在各种平台上的测试。如果您能提供修复方案,请随时提交 PR。

如果您想贡献 API 变更、扩展或新的特性和实现,请首先提交问题并讨论,然后再开始 PR 的工作。有关详细信息,请阅读 CONTRIBUTING.md 文件。

许可证

根据您的选择,许可协议为 Apache 许可证版本 2.0 或 MIT 许可证。除非您明确表示否则,您有意提交给本软件包的任何贡献,根据 Apache-2.0 许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。

SPDX-许可证-标识符:Apache-2.0 MIT

依赖项

~9.5MB
~205K SLoC