Debugging IoT applications is challenging due to the hardware constraints of IoT devices, making advanced techniques like record-replay debugging impractical. As a result, programmers often rely on manual resets or inefficient and time-consuming debugging techniques such as printf. Although simulators can help in that regard, their applicability is limited because they fall short of accurately simulating and reproducing the runtime conditions where bugs appear. In this work, we explore a novel debugging approach called event-based out-of-place debugging in which developers can capture a remotely running program and debug it locally on a (more powerful) machine. Our approach thus provides rich debugging features (e.g., step back) that normally would not run on the hardware restricted devices. Two different strategies are offered to deal with resources which cannot be easily transferred (e.g., sensors): pull-based (akin to remote debugging), or push-based (where data updates are pushed to developer's machine during the debug session). We present EDWARD, an event-based out-of-place debugger prototype, implemented by extending the WARDuino WebAssembly microcontroller Virtual Machine, that has been integrated into Visual Studio Code. To validate our approach, we show how our debugger helps uncover IoT bugs representative of real-world applications through several use-case applications. Initial benchmarks show that event-based out-of-place debugging can drastically reduce debugging latency.
|Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes
|Elisa Gonzalez Boix, Tobias Wrigstad
|Association for Computing Machinery (ACM)
|ISBN van elektronische versie
|ISBN van geprinte versie
|Published - 22 sep 2022
|19th International Conference on Managed Programming Languages & Runtimes - Brussels, Belgium, Brussels, Belgium
Duur: 14 sep 2022 → 15 sep 2022
|MPLR 2022 - Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes
|19th International Conference on Managed Programming Languages & Runtimes
|14/09/22 → 15/09/22
Bibliografische notaFunding Information:
Tom Lauwaerts is funded by the Research Foundation Flanders (FWO) with file number G030320N. Robbert Gurdeep Singh is funded by a doctoral fellowship from the Special Research Fund (BOF) of UGent (BOF18/DOC/327). We would also like to thank the anonymous reviewers for their feedback.
© 2022 ACM.
Copyright 2023 Elsevier B.V., All rights reserved.