MIO: Multiverse Debugging in the face of Input/Output
summary
Prototype MIO runs on the WARDuino WebAssembly VM on STM32 microcontrollers and lets developers mock sensor reads, jump between branches by restoring the earliest common ancestor and replaying inputs, and applies sparse snapshotting only at input/output primitives with compensating actions to undo outputs. The paper proves debugger soundness and completeness so only reachable states are explored. Measurements show per-instruction snapshots cost ~80×, typical programs have 10–50 instructions so overhead is small, and the VM runs interpreted. A Lego Mindstorms color-dial demo validates the approach.
AI-written summary · about
chapters (9)
- 0:00Multiverse debugging for IO
- 1:53Debugging IO on microcontrollers
- 3:38Key challenges in IO debugging
- 4:20Non-deterministic input exploration
- 6:48Reversible debugging with snapshots
- 8:12Sparse snapshotting on MCUs
- 10:45Snapshot interval performance
- 11:06Formal correctness of debugger
- 12:07Summary and future work
related talks
15mWOOD: Extending a WebAssembly VM with Out-of-Place Debugging for IoT applications
01h 01mMicrocontrollers in Micro-increments...
24mInception: System-Wide Security Testing of Real-World Embedded Systems Software
42mDebugging Heterogenous SoC Using OpenOCD
16mA Unified Debug Server for Deeply Embedded Systems and GDB/LLDB
18mIntOS: Persistent Embedded Operating System and Language Support for Multi-threaded...
13mLightweight IOT abstractions for Embedded WebAssembly
06mEmbedded Executive LIVE
