Setting a Consistent Breakpoint

We have now gained as much information as we need from the event-based debugger. We have a good idea where the error occurs, but Ariadne does not allow us to directly examine the state of the program. For that we need a state-based debugger. Ariadne allows us to use the event-based model to set a breakpoint at which to examine the state. This is done by selecting the second CompressLevel event from the match tree and issuing the command
break after (select);
Ariadne then sets a globally consistent breakpoint after the specified event. Each process is stopped immediately after the last event that could have affected the specified event, as shown in the following diagram: Horizontal lines represent processes. Message communication is shown by arrows and internal user events are represented by red boxes. The abstract event shown in dashed lines is composed of three user events. The ovals show where the computation is halted in each process to form a consistent global breakpoint.

[Next]