Crossware

Table of Contents        Previous topic       Next topic       

Breakpoints->Source Level Breakpoints->Hierarchical Breakpoints

You can make a breakpoint dependent upon other breakpoints.  You do this by creating parent child relationships between breakpoints by dragging and dropping items in the tree.

To create a child breakpoint, select it in the tree and drag it onto the item that you wish to makes its parent.  Execution will then not stop at the parent breakpoint unless the skip count of the child breakpoint has reached zero.

When you create a child breakpoint, its skip count will automatically default to 1.  (A child breakpoint with an initial skip count of zero has no effect.)

A child breakpoint can also be a parent to its own children.  If a child breakpoint has children then, by default, it's count will not be decremented unless the skip count if all of its children have reached zero.  However, you can set a parents properties so that its count will decrement if any of it's children has reached zero.  (An OR is done instead of an AND on the skip count of the children.)

As you can see in the sample tree below, very complex breakpoint hierarchies can be produced.

   

Execution will halt at line 71 in main.c but only the breakpoints at line 68 and line 74 have become active by reaching a skip count of zero. The breakpoint a line 74 will not decrement until either the breakpoint at line 79 or the breakpoint at line 85 have become active.  The breakpoint at line 85 will not decrement until the breakpoint at line 89 has become active.

In the tree, active children are shown with a green spot.  The top parent will also be shown with a green spot if execution has just halted at this breakpoint.

In the source code view, child breakpoints are marked red if they are inactive and green if they are active. However, top parent breakpoints remain red even if execution has just halted at it.  (The yellow marker is sufficient to indicate that execution has halted at a top parent breakpoint.)