Skip to main content

A Concurrency-Agnostic Protocol for Multi-Paradigm Concurrent Debugging Tools

Marr, Stefan and Torres Lopez, Carmen and Aumayr, Dominik and Gonzalez Boix, Elisa and Mössenböck, Hanspeter (2017) A Concurrency-Agnostic Protocol for Multi-Paradigm Concurrent Debugging Tools. In: Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming. SPLASH Systems, Programming, and Applications . ACM, New York, USA. ISBN 978-1-4503-5526-1. (doi:10.1145/3133841.3133842) (KAR id:63810)

PDF Author's Accepted Manuscript
Language: English
Download (362kB) Preview
Official URL


Today's complex software systems combine high-level concurrency models. Each model is used to solve a specific set of problems. Unfortunately, debuggers support only the low-level notions of threads and shared memory, forcing developers to reason about these notions instead of the high-level concurrency models they chose. This paper proposes a concurrency-agnostic debugger protocol that decouples the debugger from the concurrency models employed by the target application. As a result, the underlying language runtime can define custom breakpoints, stepping operations, and execution events for each concurrency model it supports, and a debugger can expose them without having to be specifically adapted. We evaluated the generality of the protocol by applying it to SOMns, a Newspeak implementation, which supports a diversity of concurrency models including communicating sequential processes, communicating event loops, threads and locks, fork/join parallelism, and software transactional memory. We implemented 21 breakpoints and 20 stepping operations for these concurrency models. For none of these, the debugger needed to be changed. Furthermore, we visualize all concurrent interactions independently of a specific concurrency model. To show that tooling for a specific concurrency model is possible, we visualize actor turns and message sends separately.

Item Type: Book section
DOI/Identification number: 10.1145/3133841.3133842
Subjects: Q Science > QA Mathematics (inc Computing science)
Divisions: Faculties > Sciences > School of Computing
Depositing User: Stefan Marr
Date Deposited: 08 Nov 2017 22:48 UTC
Last Modified: 24 Sep 2019 09:18 UTC
Resource URI: (The current URI for this page, for reference purposes)
Marr, Stefan:
  • Depositors only (login required):


Downloads per month over past year