Skip to content

Program evaluation

Juan José González-Abril edited this page Jul 8, 2021 · 3 revisions

We've enabled three different modes for controlling the evaluation of a program in a debugging session.

Manual mode

The manual mode is meant to perform step-by-step evaluations.

Manual mode

To use this mode, just type the Pid (or Message Id) in the Pid/MsgId text box, then choose any of the fireable rules. The fireable rule buttons are shown below the Pid/MsgId text box, and updated accordingly to the value of the identifier.

  • For processes, the Pid appears in the header of the process.
  • For messages, the MsgId is highlighted in different colours.

Automatic mode

The automatic mode is meant to evaluate programs in a fast manner.

Automatic mode

Steps (forward and backward)

  1. Introduce a number of steps N in the Steps text box.
  2. Push the Forward or the Backward button.

N evaluation steps will be performed in the chosen direction.

Normalize (forward)

The Normalize button performs automatic evaluations in the forward direction (note that the steps value is not used here).

Basically, CauDEr ignores any actions related to scheduling messages when performing a normalizing evaluation. Hence, the evaluation stops when:

  • The only possible actions are scheduling messages.
  • The evaluation has been completed.

Rollback mode

The rollback mode allows you to automatically undo all the actions (in a causal-consistent way) up to a particular action.

Rollback mode

The available rollback commands are:

  • Roll: Undo Steps steps in process Pid.
  • Roll spawn: Undo the spawn of process Pid.
  • Roll send: Undo the sending of message MsgId.
  • Roll receive: Undo the receiving of message MsgId.
  • Roll var: Undo the binding of variable Name.

In order to keep causal consistency, a rollback may propagate itself to other dependent processes. The Roll Log tab is automatically focused in case the rollback is propagated.