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

Stefan Marr, Carmen Torres Lopez, Dominik Aumayr, Elisa Gonzalez Boix, Hanspeter Mössenböck

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Today’s complex software systems combine high-level con- currency 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 devel- opers 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 concur- rency 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 SOM ns , 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 visu- alize all concurrent interactions independently of a specific concurrency model. To show that tooling for a specific con- currency model is possible, we visualize actor turns and message sends separately.
Original languageEnglish
Title of host publicationProceedings of the 13th ACM SIGPLAN International Symposium on Dynamic Languages, DLS'17, ACM, 2017
Place of PublicationNew York
PublisherACM
Pages3-14
Number of pages12
ISBN (Print)978-1-4503-5526-1
DOIs
Publication statusPublished - Oct 2017

Fields of science

  • 102 Computer Sciences
  • 102009 Computer simulation
  • 102011 Formal languages
  • 102013 Human-computer interaction
  • 102022 Software development
  • 102024 Usability research
  • 102029 Practical computer science

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)

Cite this