#coredump #api #rust

wasm-coredump-builder

Wasm coredump builder API for Rust

17 releases

0.2.2 Dec 31, 2024
0.2.1 Nov 25, 2024
0.1.24 Nov 14, 2024
0.1.22 Aug 7, 2023
0.1.11 Feb 24, 2023

#1663 in WebAssembly

Download history 112/week @ 2024-12-21 377/week @ 2024-12-28 488/week @ 2025-01-04 549/week @ 2025-01-11 646/week @ 2025-01-18 642/week @ 2025-01-25 280/week @ 2025-02-01 917/week @ 2025-02-08 929/week @ 2025-02-15 923/week @ 2025-02-22 1201/week @ 2025-03-01 388/week @ 2025-03-08 348/week @ 2025-03-15 185/week @ 2025-03-22 575/week @ 2025-03-29 292/week @ 2025-04-05

1,407 downloads per month
Used in 2 crates

MIT license

15KB
267 lines

Rust API for building Wasm Coredump.

Examples

let mut coredump_builder = wasm_coredump_builder::CoredumpBuilder::new()
        .executable_name("/usr/bin/true.exe");

{
    let mut thread_builder = wasm_coredump_builder::ThreadBuilder::new()
        .thread_name("main");

    let coredump_frame = wasm_coredump_builder::FrameBuilder::new()
        .codeoffset(123)
        .funcidx(6)
        .build();
    thread_builder.add_frame(coredump_frame);

    coredump_builder.add_thread(thread_builder.build());
}

let coredump = coredump_builder.serialize().unwrap();

WebAssembly Coredump

Monorepo for generating, parsing, debugging WebAssembly coredumps.

See demo for an overview about how to use Wasm coredumps.

Debugging

Think gdb for WebAssembly

See wasmgdb for documentation.

Use Coredump today

Since no Wasm engine support exists today, you an use wasm-coredump-rewriter to inject Coredump support.

Coredump format

See specificiation.

Troubleshooting

Running into stack overflow

Some Wasm binaries have very recursive flow of control, increase the maximum stack size:

$ ulimit -s 160000

Dependencies

~575KB
~13K SLoC