Online Eiffel Documentation
EiffelStudio

Replay (recorded) execution

The replay functionality is graphically available on the Call stack tool, or though the "Execution" menu.

First, you must be sure execution recording is activated (read how to record execution).

Now, whenever the application is stopped in the debugger, you can replay the recorded execution by clicking on the "Replay" button:

Now we are in "execution replay" mode, as you can notice the "Replay" button is enabled, and there is a new commands bar with replay "Back", "Forth", "Previous", "Next", and "Go to". And on the right the number indicates the call stack depth, the breakable index, and the nested breakable index.

In the first column, you will find a tree structure, which show on the root level, the effective call stacks, and for each root node, you can inspect the sub element to browse the calls history.
The bold entries show the active call stacks (i,e: the current call stack when we stopped the debugger).
The red arrow shows the replayed call stack level, and the call stack levels which can be replayed have a light blue background.

If you expand a node, you will be able to browse the whole recorded execution history from this stack (if you expand the bottom node, the whole recorded execution history will be available).
You can still select other call stack level as you do in normal debugging mode to inspect them, in this case the red arrow stick to the replayed call, and the green arrow show you the selected call stack level.

Here we clicked on "Back" 3 times, you can now also replay "Forth" 3 times. When you execute a "Replay" operation, the debugger restores the related recorded values, and the various debugger tools are updated with tools values (including the watch tools)

And then if you replay "previous" twice, you rewind the execution in the same call stack frame, you will notice the "blue" dot to show the replayed execution cursor.

When replaying, you will notice the debugging tools are synchronized and refresh.
This means the objects tool, the watch tools, and the feature tool will display the replayed context (values, and replayed execution cursor).
If you evaluate an expression in a watch tool, it will use the recorded values, then be careful about side effects, since you can modify those values...