Look who's talking!

Detail illustration WASM I/O Detail illustration WASM I/O
Natalia Venditto
Ralph Squillace

Nobody Knows the Trouble I've Seen: Debugging Wasm for web and server

Natalia Venditto - Microsoft / Ralph Squillace - Microsoft

Debugging WebAssembly systematically, across widely varying runtimes and with very different code paths inside modules, is a total pain. Most usage in the browser focuses on features enabled in F12, which assumes a JavaScript engine is hosting the assembly and, often but not alwasy, the Chrome Debugging Protocol. And that’s the front end; outside the browser, there’s no standard debugger API (yet), protocols between languages vary widely, and not all languages treat debug symbols the same way. It’s HARD, so hard that most service based on WebAssembly implement their own debugging (because otherwise you’d get mad at the service for low productivity).

But there’s hope! In this session, we’ll tour the requirements to debug into wasm, show the paths available depending on your usage of the technology, and demonstrate some tool sets that, taken as a whole, give you a native-feeling, interactive step-through debugging – the thing you want. We’ll discuss stepping through wasm mapped to source code – both for browser and interpreted languages like Python, but also for standalone runtimes and Rust, Go, C, and Zig.We’ll wrap up with the debugging UX issues yet to be solved and more importantly where you can dive in and contribute. This is the year of WebAssembly on the Desktop. (Can I say that?)

View all sessions