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.
Cite
@article{arxiv.2108.11679,
title = {A Program Instrumentation for Prefix-Based Tracing in Message-Passing Concurrency},
author = {Juan José González-Abril and Germán Vidal},
journal= {arXiv preprint arXiv:2108.11679},
year = {2021}
}
Comments
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)