A Program Instrumentation for Prefix-Based Tracing in Message-Passing Concurrency
Abstract
The execution of concurrent programs generally involves some degree of nondeterminism, mostly due to the relative speeds of the concurrent processes. As a consequence, reproducibility is often challenging. This problem has been traditionally tackled by a combination of tracing and replay. In this paper, we introduce a program instrumentation for "prefix-based tracing" that combines both tracing and replay. In the general case, the program is instrumented with a partial trace, so that the execution first follows the partial trace (replay) and, then, proceeds nondeterministically, eventually producing a trace of the complete execution as a side effect. Observe that traditional tracing and replay are particular cases of our approach when an empty trace is provided (pure tracing) and when a full trace is provided (pure replay), respectively.
- Publication:
-
arXiv e-prints
- Pub Date:
- August 2021
- DOI:
- 10.48550/arXiv.2108.11679
- arXiv:
- arXiv:2108.11679
- Bibcode:
- 2021arXiv210811679J
- Keywords:
-
- Computer Science - Programming Languages;
- Computer Science - Logic in Computer Science
- E-Print:
- Pre-proceedings paper presented at the 31st International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2021), Tallinn, Estonia, and Virtual, September 7-8, 2021 (arXiv:2107.10160)