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

06/01/2017
by   Stefan Marr, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/26/2021

Capturing High-level Nondeterminism in Concurrent Programs for Practical Concurrency Model Agnostic Record Replay

With concurrency being integral to most software systems, developers com...
research
12/07/2019

Programming Scalable Cloud Services with AEON

Designing low-latency cloud-based applications that are adaptable to unp...
research
05/16/2018

Efficient and Deterministic Record & Replay for Actor Languages

With the ubiquity of parallel commodity hardware, developers turn to hig...
research
03/12/2018

Memory Models for C/C++ Programmers

The memory model is the crux of the concurrency semantics of shared-memo...
research
05/06/2022

Synchron – An API and Runtime for Embedded Systems

Programming embedded systems applications involve writing concurrent, ev...
research
03/28/2021

Phism: Polyhedral High-Level Synthesis in MLIR

Polyhedral optimisation, a methodology that views nested loops as polyhe...
research
04/12/2018

Adaptive Ensemble Biomolecular Simulations at Scale

Recent advances in both theory and methods have created opportunities to...

Please sign up or login with your details

Forgot password? Click here to reset