Probe

Probe can be used to manually explore the transitions of a process as a tree, which can be very helpful when debugging a process definition. Probe can be launched on any process by typing :probe P into the prompt. Alternatively, Probe may be launched on any state via a node (such as those in the Debug Viewer or Process Graph Viewer) by clicking the Probe button.

As an example of how to use Probe, consider loading Dining Philosophers and typing :probe SYSTEM into the prompt; this will result in the following window being displayed:

../_images/probe_phils6_SYSTEM.png

In the above, the transitions of the initial state (i.e. SYSTEM) are shown in sorted order of event. A line of the form ev: P means that the process can perform the event ev and evolve into the process P. Further, each of these lines can be expanded to reveal the transitions of the resulting process, yielding a tree of transitions. To expand the transitions of a process either double click on the row, click on the triangle to the left of the row, or use the right arrow keyboard button. To contract a row, either double click on the row, click on the triangle or use the left arrow keyboard button.

For example, if we expand the first and the second rows, we see the following view:

../_images/probe_phils6_SYSTEM_expanded.png

Probe also highlights syntactically equivalent nodes in red. For example, in the above screenshot there are two rows highlighted as the state reached by SYSTEM performing thinks.0 and then thinks.1 is identical to the state reached by performing the events in the opposite order.

The trace required to reach the currently selected node is displayed at the bottom of the window.