It is often important to be able to see what your
project is doing while it is doing it. This will enable you to make more informed changes to a
project and more quickly realise the project's objectives. To this end, the Editor allows you to pause a project while it is running. After a pause request is issued, each
thread is halted when it next emerges from a
feature. At this point, any data that the thread is carrying can be examined in the
Runtime Data panel and, under certain circumstances, may even be changed.
Breakpoints can be set on
sockets. A breakpoint serves to block threads in much the same way as a pause request but with the advantage that it is location-specific. When a thread is blocked by a breakpoint, all other threads will also be paused when they next emerge from their features. To set a breakpoint you will need to open the
view that contains the target socket. Then, with the
Pointer Tool selected, double-click the target socket on the design surface. Alternatively, with the target socket or sockets selected, from the menu bar choose
Debug → Breakpoint → Set Breakpoint or from the context menu of either the Pointer Tool or Connection Tool, choose
Debug → Breakpoint. At runtime you may also set a breakpoint at a location where there is a paused thread, by clicking Set Breakpoint on the
toolbar.
By default, breakpoints always block threads. However, they can be
configured to block only when certain conditions arise. These conditions are functions of either:
As well as enabling you to pause threads, the Editor supports thread-stepping and thread-resumption for:
The Breakpoints panel is shown by selecting
View → Breakpoints from the menu bar or by clicking the Breakpoints button in the
Standard toolbar.
Toolbar
The toolbar supports actions in respect of the breakpoints list.
|
|
Breakpoints list
A list of all breakpoints. At runtime this may include locations without breakpoints at which threads are paused.
|
|
Enabled
A checked box indicates an enabled (i.e. active) breakpoint. An unchecked box indicates a breakpoint that will not block threads.
|
|
Location
A description of the location of the associated breakpoint.
|
|
Behaviour
A description of the behaviour of the associated breakpoint.
|
|
Threads
A list of the identifiers of threads currently paused at the associated breakpoint.
|
|