Whamm! A WebAssembly Bytecode Instrumentation DSL - Elizabeth Gilbert
Whamm! A WebAssembly Bytecode Instrumentation DSL - Elizabeth Gilbert, Carnegie Mellon University (CMU)
Debugging and profiling programs is done through instrumenting the program-under-observation (inserting instructions to monitor dynamic execution). The most-common techniques inject instructions directly into the program. While this enables tools to support any domain, it intrudes on the program state space, complicates the implementation, limits the scope of observation, and cannot dynamically adapt. These issues can be remedied by interfacing with an engine, like Wizard, with instrumentation support.
A recent ASPLOS paper demonstrated how to build support that protects the application, provides consistency guarantees, applies JIT optimizations, and more. However, this technique limits a tool's scope to programs that can run on such engines. This talk presents the design of a new instrumentation DSL for Wasm that abstracts above the injection technique enabling tooling to support a wide domain of applications while leveraging runtime capabilities as-available without reimplementation.
Debugging and profiling programs is done through instrumenting the program-under-observation (inserting instructions to monitor dynamic execution). The most-common techniques inject instructions directly into the program. While this enables tools to support any domain, it intrudes on the program state space, complicates the implementation, limits the scope of observation, and cannot dynamically adapt. These issues can be remedied by interfacing with an engine, like Wizard, with instrumentation support.
A recent ASPLOS paper demonstrated how to build support that protects the application, provides consistency guarantees, applies JIT optimizations, and more. However, this technique limits a tool's scope to programs that can run on such engines. This talk presents the design of a new instrumentation DSL for Wasm that abstracts above the injection technique enabling tooling to support a wide domain of applications while leveraging runtime capabilities as-available without reimplementation.
The Linux Foundation
The Linux Foundation is a nonprofit consortium dedicated to fostering the growth of Linux and collaborative software development. Founded in 2000, the organization sponsors the work of Linux creator Linus Torvalds and promotes, protects and advances the L...