A Program Instrumentation for Prefix-Based Tracing in Message-Passing Concurrency

Juan José González-Abril,Germán Vidal
DOI: https://doi.org/10.48550/arXiv.2108.11679
2021-08-26
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.
Programming Languages,Logic in Computer Science
What problem does this paper attempt to address?