WebAssembly has established itself as a portable compilation target across a wide variety of environments, from browsers and cloud platforms to hardware-constrained devices such as microcontrollers. WebAssembly has become available across a wide variety of environments, from browsers and cloud platforms to hardware-constrained devices such as microcontrollers. Its formal specification enables developers to reliably target a broad range of runtimes while compiler toolchains and runtime developers rely on the same formal model. Yet debugging support for WebAssembly remains at an early stage. Source maps often lack sufficient context for debugging, whereas DWARF offers rich type, scope, and location data that developers need for effective debugging. However, adding DWARF support requires non-trivial, time-consuming runtime-specific efforts that must be repeated independently for each runtime. As a result, the set of debugging features available across runtimes is highly fragmented, while bugs that manifest exclusively in environments without debugging support cannot be analyzed at all.
In this paper, we present DWasm, a runtime-independent debugger for WebAssembly. DWasm is realized as a binary transformation pass that instruments the target application with debugging support, without being implemented as part of a concrete runtime engine. By decoupling the debugger from the runtime, DWasm brings portable, DWARF-based debugging across WebAssembly environments. This approach further reduces tool development costs and enables debugging features to be customized for the application-runtime combination at hand. For our benchmark programs, DWasm exhibits 2x memory overhead, which is low when compared with state-of-the-art debuggers for WebAssembly. In contrast, we observe a performance overhead consistently over 300x, where the shadow-execution instrumentation dominates the added overhead.
Tue 30 JunDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
14:00 - 15:30 | |||
14:00 30mTalk | WAMI: Compilation to WebAssembly through MLIR without Losing Abstraction MPLR Byeongjee Kang Carnegie Mellon University, Harsh Desai Carnegie Mellon University, Limin Jia Carnegie Mellon University, Brandon Lucia Carnegie Mellon University | ||
14:30 30mTalk | DWasm: Portable Debugging for the Web MPLR Aäron Munsters Vrije Universiteit Brussel, Nikita Servais Vrije Universiteit Brussel, Carlos Rojas Castillo Vrije Universiteit Brussel, Angel Luis Scull Pupo Sofware Languages Lab, Vrije Universiteit Brussel, Elisa Gonzalez Boix Vrije Universiteit Brussel | ||
15:00 30mTalk | Annotation-Guided Edit-Aware JIT Compilation for Julia Computational Notebooks MPLR Yusuke Izawa Tokyo Metropolitan University, Tomoki Nakamaru The University of Tokyo, Tetsuro Yamazaki University of Tokyo | ||