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

**Authors:** Stefan Marr, Carmen Torres Lopez, Dominik Aumayr, Elisa Gonzalez Boix,, Hanspeter M\"ossenb\"ock

arXiv: 1706.00363 · 2017-10-31

## TL;DR

This paper introduces a concurrency-agnostic debugger protocol that enables flexible debugging across multiple high-level concurrency models without needing model-specific modifications.

## Contribution

It proposes a universal debugger protocol that decouples debugging tools from specific concurrency models, allowing custom breakpoints and operations for diverse models.

## Key findings

- Successfully applied to SOMns with multiple concurrency models
- Implemented 21 breakpoints and 20 stepping operations without debugger modifications
- Visualized concurrent interactions independently of specific models

## Abstract

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.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1706.00363/full.md

## Figures

15 figures with captions in the complete paper: https://tomesphere.com/paper/1706.00363/full.md

## References

24 references — full list in the complete paper: https://tomesphere.com/paper/1706.00363/full.md

---
Source: https://tomesphere.com/paper/1706.00363