Language-Agnostic Debugging for Microcontrollers
With the advent of WebAssembly (Wasm), programming microcontrollers (MCUs) has become possible by leveraging on a wide range of languages (e.g., Rust, AssemblyScript, C, C#, Go, C++) that compile to Wasm. However, current WebAssembly debugging support is still in early development and is designed for applications running on desktop machines, making it too resource-intensive for MCUs. While DWARF and OpenOCD have facilitated language-agnsotic debugging for languages like Rust, Go, and C, these solutions are limited to languages that compile to native machine code and fail to target IoT systems. Consequently, IoT systems often undergo only partial debugging, increasing the likelihood of severe and frequent concurrency and communication bugs. In this position paper, we explore the challenges and issues associated with language-agnostic debugging. We identify several key requirements for effective language-agnostic debugging, such as the need for over-the-air debugging and the ability to perform distributed debugging operations. Additionally, we present an envisioned language-agnostic debugging approach based on WebAssembly, designed to support the debugging of large-scale distributed IoT systems.
Authors
- Matteo Marra (ORCID: https://orcid.org/0000-0002-8037-0567)
- Carlos Rojas Castillo (ORCID: https://orcid.org/0000-0002-2952-855X)
- Elisa Gonzalez Boix (ORCID: https://orcid.org/0000-0002-9966-6421)
Institutions
- Vrije Universiteit Brussel (BE)
- Nokia (Belgium) (BE)
Publication Details
- Published
- 2024-09-13
- DOI
- https://doi.org/10.1145/3678720.3685317
- Primary Topic
- Context-Aware Activity Recognition Systems
- Type
- article
- Field-Weighted Citation Impact
- 0.00