Behind the Scenes: Debugging Kotlin/Wasm
summary
Kotlin compiles IR directly to Wasm binaries (no LLVM) and the toolchain relies on GC and reference types plus optional exception handling; debug UX comes from name and extended name sections and Source Map v3 with a generated sourceMappingURL custom section so browsers can map instructions back to Kotlin sources. Variable views use Chrome/Firefox custom formatters; an ignore list is used to hide intrinsics (now merged into V8). Outside the browser, toolchain emits DWARF (debug_info/debug_line) for lldb and aims to support Wasmtime and WAMR.
AI-written summary · about
chapters (11)
- 0:00Kotlin/Wasm debugging intro
- 2:34In-browser debugging with DevTools
- 6:50Enhancing debug info with name sections
- 7:54Mapping instructions to source with Source Maps
- 10:45Customizing variable views in debuggers
- 14:16Improving debug experience with ignore lists
- 15:44Exploring Source Maps scope proposal
- 16:47Challenges with expression evaluation
- 18:30Outside-browser debugging with LLDB
- 20:23Generating DWARF debug info
- 23:13Future work and collaboration
related talks
31mIntroducing Kotlin/Wasm
32mThe State Of Kotlin/Wasm
26mNavigating Strategies for Debugging WASM
46mWebAssembly (Digging a bit deeper)
09mDebugging WebAssembly with modern tools
13mWebAssembly Debugging Demystified
34mPanel Discussion: Browsers & Wasm
24mNo More Printf: Interactive Debugging Wasm for web and server
