Debugging WebAssembly? Put some Whamm on it!
summary
Whamm is an instrumentation framework for WebAssembly that compiles a declarative DSL into either an engine-level Whey engine API probe module or a bytecode-rewriting fallback, letting the engine bundle only requested state into probe callbacks. Implemented optimizations include a machine-code trampoline optimization in the interpreter and a WOM-to-WOM inlining path for JIT; end-to-end measurements show overhead collapsing from ~61.3x to ~1.6x for optimized probes. Case studies and artifacts demonstrate expressive monitors and portable deployment across engines or via rewriting.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 1:48Instrumentation challenges
- 2:30Introducing Whamm
- 3:54Branch profiler with Whamm
- 4:57Applying instrumentation
- 6:44Dynamic vs bytecode rewriting
- 8:09Whamm engine interface
- 9:33Optimizing probe callbacks
- 11:40Future plans
- 12:29Q&A
related talks
23mWhamm: A Framework for Performant, Sandboxed Instrumentation.
40mWhamm! A WebAssembly Bytecode Instrumentation DSL
24mMeta-tracing Interpreters in WebAssembly
01h 08mOn WebAssembly
32mWebAssembly Demystified
37mDecoding the hype behind WebAssembly: Looking under the hood
13mWebAssembly Debugging Demystified
26mNavigating Strategies for Debugging WASM
