{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,1]],"date-time":"2026-05-01T14:24:15Z","timestamp":1777645455205,"version":"3.51.4"},"reference-count":0,"publisher":"SAGE Publications","issue":"3","license":[{"start":{"date-parts":[[2021,1,15]],"date-time":"2021-01-15T00:00:00Z","timestamp":1610668800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/journals.sagepub.com\/page\/policies\/text-and-data-mining-license"}],"content-domain":{"domain":["journals.sagepub.com"],"crossmark-restriction":true},"short-container-title":["Fundamenta Informaticae"],"published-print":{"date-parts":[[2021,1,15]]},"abstract":"<jats:p>Causal-consistent reversible debugging is an innovative technique for debugging concurrent systems. It allows one to go back in the execution focusing on the actions that most likely caused a visible misbehavior. When such an action is selected, the debugger undoes it, including all and only its consequences. This operation is called a causal-consistent rollback. In this way, the user can avoid being distracted by the actions of other, unrelated processes. In this work, we introduce its dual notion: causal-consistent replay. We allow the user to record an execution of a running program and, in contrast to traditional replay debuggers, to reproduce a visible misbehavior inside the debugger including all and only its causes. Furthermore, we present a unified framework that combines both causal-consistent replay and causal-consistent rollback. Although most of the ideas that we present are rather general, we focus on a popular functional and concurrent programming language based on message passing: Erlang.<\/jats:p>","DOI":"10.3233\/fi-2021-2005","type":"journal-article","created":{"date-parts":[[2021,1,15]],"date-time":"2021-01-15T12:18:19Z","timestamp":1610713099000},"page":"229-266","update-policy":"https:\/\/doi.org\/10.1177\/sage-journals-update-policy","source":"Crossref","is-referenced-by-count":14,"title":["Causal-Consistent Replay Reversible Semantics for Message Passing Concurrent           Programs"],"prefix":"10.1177","volume":"178","author":[{"given":"Ivan","family":"Lanese","sequence":"first","affiliation":[{"name":"Focus Team, University of Bologna\/INRIA, Mura Anteo Zamboni, 7, Bologna, Italy."}]},{"given":"Adri\u00e1n","family":"Palacios","sequence":"additional","affiliation":[{"name":"MiST, VRAIN, Universitat Polit\u00e8cnica de Val\u00e8ncia, Camino de Vera, S\/N, 46022 Valencia, Spain.\r            ,"}]},{"given":"Germ\u00e1n","family":"Vidal","sequence":"additional","affiliation":[{"name":"MiST, VRAIN, Universitat Polit\u00e8cnica de Val\u00e8ncia, Camino de Vera, S\/N, 46022 Valencia, Spain.\r            ,"}]}],"member":"179","published-online":{"date-parts":[[2021,1,15]]},"container-title":["Fundamenta Informaticae"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.3233\/FI-2021-2005","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.3233\/FI-2021-2005","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T06:32:16Z","timestamp":1777444336000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.3233\/FI-2021-2005"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,1,15]]},"references-count":0,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2021,1,15]]}},"alternative-id":["10.3233\/FI-2021-2005"],"URL":"https:\/\/doi.org\/10.3233\/fi-2021-2005","relation":{},"ISSN":["0169-2968","1875-8681"],"issn-type":[{"value":"0169-2968","type":"print"},{"value":"1875-8681","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,1,15]]}}}