Multiverse Debugging: Non-deterministic Debugging for Non-deterministic Programs
Many of today’s software systems are parallel or concurrent. With the rise of Node.js and more generally event-loop architectures, many systems need to handle concurrency. However, its non-deterministic behavior makes it hard to reproduce bugs. Today’s interactive debuggers do unfortunately not support developers in debugging non-deterministic issues. They only allow us to explore a single execution path. Therefore, some bugs may never be reproduced in the debugging session, because the right conditions could not be triggered. As a solution, we propose multiverse debugging, a new approach for debugging non-deterministic programs that allow developers to observe all possible execution paths of a parallel program and debug it interactively. We introduce the concepts of multiverse breakpoints and stepping, which can halt a program in different execution paths, i.e.\ universes. We apply multiverse debugging to AmbientTalk, an actor-based language, resulting in Voyager, a multiverse debugger implemented on top of the AmbientTalk operational semantics. We provide a proof non-interference, i.e we prove that observing the behavior of a program by the debugger does not affect the behavior of that program and vice versa. Multiverse debugging establishes the foundation for debugging non-deterministic programs interactively, which we believe can aid the development of parallel and concurrent systems.
Thu 18 Jul Times are displayed in time zone: Greenwich Mean Time : Belfast change
13:30 - 15:10: Program Analysis 2Research Papers at Mancy Chair(s): Christian HammerUniversity of Potsdam | |||
13:30 - 13:50 Research paper | Deep Static Modeling of invokedynamic Research Papers DOI Media Attached | ||
13:50 - 14:10 Research paper | Automated Large-scale Multi-language Dynamic Program Analysis in the Wild Research Papers Alex VillazónUniversidad Privada Boliviana, Bolivia, Haiyang SunUniversità della Svizzera italiana, Andrea RosàUniversity of Lugano, Switzerland, Eduardo RosalesUniversity of Lugano, Switzerland, Daniele BonettaOracle Labs, Isabella DefilippisUniversidad Privada Boliviana (UPB), Sergio OportoUniversidad Privada Boliviana (UPB), Walter BinderUniversity of Lugano, Switzerland DOI Media Attached | ||
14:10 - 14:30 Research paper | MagpieBridge: A General Approach to Integrating Static Analyses into IDEs and Editors Research Papers Linghui LuoPaderborn University, Julian DolbyIBM Research, Eric BoddenHeinz Nixdorf Institut, Paderborn University and Fraunhofer IEM DOI Pre-print Media Attached | ||
14:30 - 14:50 Research paper | Reasoning About Foreign Function Interfaces Without Modelling the Foreign Language Research Papers Alexi TurcotteNortheastern University, Ellen ArtecaNortheastern University, Gregor RichardsUniversity of Waterloo DOI Media Attached | ||
14:50 - 15:10 Research paper | Multiverse Debugging: Non-deterministic Debugging for Non-deterministic Programs Research Papers Carmen Torres LopezVrije Universiteit Brussel, Robbert Gurdeep SinghUniversiteit Gent, Belgium, Stefan MarrUniversity of Kent, Elisa Gonzalez BoixVrije Universiteit Brussel, Belgium, Christophe ScholliersUniversiteit Gent, Belgium DOI Media Attached |