Abstract
Programs written using Communicating Event-Loops (CEL) concurrency model do not suffer
from low-level data races by design but are not exempt from other concurrency bugs,
such as behavioral deadlocks and message order violations. When programmers need
to find the root cause of a bug, they typically ask questions about the application's
behavior. However, current debugging tools are mostly operational, offering features
at the source code level like breakpoints and watchpoints. Consequently, understanding
the program behavior when debugging can take a lot of time for developers since questions
on behaviors need to be mapped into operations in the debugger. Inspired by interrogative
debugging, this paper proposes an interactive debugging approach for actor-based programs
that enable developers to reason about the program output by selecting questions from
a set of predefined questions about the code and the program's execution. We present
the design of the questions and answers, and we describe a prototype implementation
in Apgar, an online debugger for actor-based programs written in SOMns. We define
questions based on key concepts of the actor model: actors, turns, messages, and promises.
The debugger then computes the answers by analyzing a recorded trace of events about
the program execution.
from low-level data races by design but are not exempt from other concurrency bugs,
such as behavioral deadlocks and message order violations. When programmers need
to find the root cause of a bug, they typically ask questions about the application's
behavior. However, current debugging tools are mostly operational, offering features
at the source code level like breakpoints and watchpoints. Consequently, understanding
the program behavior when debugging can take a lot of time for developers since questions
on behaviors need to be mapped into operations in the debugger. Inspired by interrogative
debugging, this paper proposes an interactive debugging approach for actor-based programs
that enable developers to reason about the program output by selecting questions from
a set of predefined questions about the code and the program's execution. We present
the design of the questions and answers, and we describe a prototype implementation
in Apgar, an online debugger for actor-based programs written in SOMns. We define
questions based on key concepts of the actor model: actors, turns, messages, and promises.
The debugger then computes the answers by analyzing a recorded trace of events about
the program execution.
Original language | English |
---|---|
Title of host publication | What's the Problem? Interrogating Actors to Identify the Root Cause of Concurrency Bugs |
Editors | Elias Castegren, Joeri De Koster, Simon Fowler |
Publisher | Association for Computing Machinery (ACM) |
Pages | 24-36 |
Number of pages | 13 |
ISBN (Electronic) | 9781450391047 |
DOIs | |
Publication status | Published - Oct 2021 |
Event | Proceedings of the 11th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control - Chicago, United States Duration: 17 Oct 2021 → … |
Publication series
Name | AGERE 2021 - Proceedings of the 11th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control, co-located with SPLASH 2021 |
---|
Workshop
Workshop | Proceedings of the 11th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control |
---|---|
Abbreviated title | AGERE 2021 |
Country/Territory | United States |
City | Chicago |
Period | 17/10/21 → … |
Bibliographical note
Publisher Copyright:© 2021 ACM.
Copyright:
Copyright 2022 Elsevier B.V., All rights reserved.