Debugging concurrent programs is an interesting application of reversibility. It has been renewed with the recent proposal by Giachino et al. to base the operations of a concurrent debugger on a causal-consistent reversible semantics, and subsequent work on CauDEr, a causal-consistent debugger for the Erlang programming language. This paper extends CauDEr and the related theory with the support for distributed programs. Our extension allows one to debug programs in which processes can run on different nodes, and new nodes can be created at runtime. From the theoretical point of view, the primitives for distributed programming give rise to more complex causal structures than those arising from the concurrent fragment of Erlang handled in CauDEr, yet we show that the main results proved for CauDEr still hold. From the practical point of view, we show how to use our extension of CauDEr to find a non trivial bug in a simple way.

Causal-Consistent Debugging of Distributed Erlang Programs / Fabbretti G.; Lanese I.; Stefani J.-B.. - STAMPA. - 12805:(2021), pp. 79-95. (Intervento presentato al convegno 13th International Conference on Reversible Computation, RC 2021 tenutosi a Nagoya, Japan (online due to covid) nel July 7 - July 8, 2021) [10.1007/978-3-030-79837-6_5].

Causal-Consistent Debugging of Distributed Erlang Programs

Lanese I.;
2021

Abstract

Debugging concurrent programs is an interesting application of reversibility. It has been renewed with the recent proposal by Giachino et al. to base the operations of a concurrent debugger on a causal-consistent reversible semantics, and subsequent work on CauDEr, a causal-consistent debugger for the Erlang programming language. This paper extends CauDEr and the related theory with the support for distributed programs. Our extension allows one to debug programs in which processes can run on different nodes, and new nodes can be created at runtime. From the theoretical point of view, the primitives for distributed programming give rise to more complex causal structures than those arising from the concurrent fragment of Erlang handled in CauDEr, yet we show that the main results proved for CauDEr still hold. From the practical point of view, we show how to use our extension of CauDEr to find a non trivial bug in a simple way.
2021
Reversible Computation
79
95
Causal-Consistent Debugging of Distributed Erlang Programs / Fabbretti G.; Lanese I.; Stefani J.-B.. - STAMPA. - 12805:(2021), pp. 79-95. (Intervento presentato al convegno 13th International Conference on Reversible Computation, RC 2021 tenutosi a Nagoya, Japan (online due to covid) nel July 7 - July 8, 2021) [10.1007/978-3-030-79837-6_5].
Fabbretti G.; Lanese I.; Stefani J.-B.
File in questo prodotto:
File Dimensione Formato  
paper-rc2021.pdf

accesso aperto

Tipo: Postprint
Licenza: Licenza per accesso libero gratuito
Dimensione 1.81 MB
Formato Adobe PDF
1.81 MB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11585/847055
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 10
  • ???jsp.display-item.citation.isi??? 6
social impact