Saved in:
Bibliographic Details
Main Authors: González-Abril, Juan José, Vidal, Germán
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2406.05719
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911910770769920
author González-Abril, Juan José
Vidal, Germán
author_facet González-Abril, Juan José
Vidal, Germán
contents Causal-consistent reversible debugging allows one to explore concurrent computations back and forth in order to locate the source of an error. In this setting, backward steps can be chosen freely as long as they are "causal consistent", i.e., as long as all the actions that depend on the action we want to undo have been already undone. Here, we consider a framework for causal-consistent reversible debugging in the functional and concurrent language Erlang. This framework considered programs translated to an intermediate representation, called Core Erlang. Although using such an intermediate representation simplified both the formal definitions and their implementation in a debugging tool, the choice of Core Erlang also complicated the use of the debugger. In this paper, we extend the framework in order to deal with source Erlang programs, also including some features that were not considered before. Moreover, we integrate the two existing approaches (user-driven debugging and replay debugging) into a single, more general framework, and develop a new version of the debugging tool CauDEr including all the mentioned extensions as well as a renovated user interface.
format Preprint
id arxiv_https___arxiv_org_abs_2406_05719
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Causal-Consistent Reversible Debugging: Improving CauDEr
González-Abril, Juan José
Vidal, Germán
Programming Languages
Causal-consistent reversible debugging allows one to explore concurrent computations back and forth in order to locate the source of an error. In this setting, backward steps can be chosen freely as long as they are "causal consistent", i.e., as long as all the actions that depend on the action we want to undo have been already undone. Here, we consider a framework for causal-consistent reversible debugging in the functional and concurrent language Erlang. This framework considered programs translated to an intermediate representation, called Core Erlang. Although using such an intermediate representation simplified both the formal definitions and their implementation in a debugging tool, the choice of Core Erlang also complicated the use of the debugger. In this paper, we extend the framework in order to deal with source Erlang programs, also including some features that were not considered before. Moreover, we integrate the two existing approaches (user-driven debugging and replay debugging) into a single, more general framework, and develop a new version of the debugging tool CauDEr including all the mentioned extensions as well as a renovated user interface.
title Causal-Consistent Reversible Debugging: Improving CauDEr
topic Programming Languages
url https://arxiv.org/abs/2406.05719