Concolic Multiverse Debugging

Developing and debugging software for microcontrollers can be rather challenging. Firstly, microcontrollers are often programmed in low-level languages. Secondly, debugging tools are often very limited or simply non-existent. Thirdly, the non-deterministic nature of connected sensors, makes it hard to reproduce bugs. These challenges make finding and reproducing bugs in microcontroller programs tedious. To overcome these challenges, we propose building a new debugger for microcontrollers based on the ideas of multiverse debugging, which allows exploring all non-deterministic execution paths of a program. Our approach builds upon two main ideas: Time Travel and Concolic Debugging. Time Travel Debugging allows developers to explore execution both forwards and backwards in time. Concolic Debugging allows a developer to debug a specifically chosen execution of a non-deterministic program. When doing so concolic execution is used to mitigate the problem of state explosion. We call our novel approach that combines these two techniques Concolic Multiverse Debugging. In this demo we present our prototype Concolic Multiverse Debugger for the WARDuino WebAssembly virtual machine. We show how this prototype can be used to debug an STM32 powered robot.

Authors

Institutions

Publication Details

Published
2024-09-13
DOI
https://doi.org/10.1145/3678720.3685318
Primary Topic
Software Testing and Debugging Techniques
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Concolic Multiverse Debugging

Tom Lauwaerts, Christophe Scholliers, Maarten Steevens
Software Testing and Debugging Techniques
article

Concolic Multiverse Debugging

Tom Lauwaerts, Christophe Scholliers, Maarten Steevens
article en

Abstract

Developing and debugging software for microcontrollers can be rather challenging. Firstly, microcontrollers are often programmed in low-level languages. Secondly, debugging tools are often very limited or simply non-existent. Thirdly, the non-deterministic nature of connected sensors, makes it hard to reproduce bugs. These challenges make finding and reproducing bugs in microcontroller programs tedious. To overcome these challenges, we propose building a new debugger for microcontrollers based on the ideas of multiverse debugging, which allows exploring all non-deterministic execution paths of a program. Our approach builds upon two main ideas: Time Travel and Concolic Debugging. Time Travel Debugging allows developers to explore execution both forwards and backwards in time. Concolic Debugging allows a developer to debug a specifically chosen execution of a non-deterministic program. When doing so concolic execution is used to mitigate the problem of state explosion. We call our novel approach that combines these two techniques Concolic Multiverse Debugging. In this demo we present our prototype Concolic Multiverse Debugger for the WARDuino WebAssembly virtual machine. We show how this prototype can be used to debug an STM32 powered robot.

Ghent University (BE)
Openalex Percentile: Top 85%
Software Testing and Debugging Techniques
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Concolic Multiverse Debugging — Tom Lauwaerts, Christophe Scholliers, et al. · (2024) | TGRS Research Map | TGRS