<HTML>
<HEAD>
<TITLE>Tracepoint Window Help</TITLE>
</HEAD>
<BODY>
<H1>The Tracepoint Window</H1>
<H3>Overview</H3>
<P>The Tracepoint Window lists all the various tracepoints that exist in
the program. It facilitates modifying tracepoints (make them
temporary or normal, disabled or enabled) and removing tracepoints.</P>

<P>Tracepoint Window topics:
<UL>
    <LI><UL><A HREF="#menus">Menus</A>
            <LI><A HREF="#menus_bp">Tracepoint Menu</A>
            <LI><A HREF="#menus_global">Global Menu</A>
        </UL>
    <LI><UL><A HREF="#display">Tracepoint Display</A>
            <LI><A HREF="#display_state">Enabling/Disabling Tracepoints</A>
            <LI><A HREF="#display_remove">Removing Tracepoints</A>
            <LI><A HREF="#display_popup">Tracepoint Pop-up Menu</A>
        </UL>
</UL></P>

<H3><A NAME="menus">Menus</A></H3>
The Tracepoint Window contains two menus, one which deals specifically with
the individual tracepoints selected in the window, and one whose commands
affect all tracepoints.
<BR>

<H4><A NAME="menus_bp">Tracepoint Menu</A></H4>
The Tracepoint Menu operates on the selected tracepoint only. The
state of a tracepoint may be changed by selecting the desired state
from the menu:
<DL>
    <DT>Actions
        <DD><A HREF="tracedlg.html">Display the Tracepoint Dialog</A> for
            this tracepoint.
    <DT>Enabled
        <DD>The tracepoint is active and will stop the debugger
            when it is hit.
    <DT>Disabled
        <DD>The tracepoint is being ignored. A disabled tracepoint
            will never get hit.
    <DT>Remove
        <DD>Deletes the tracepoint
</DL>
<BR>

<H4><A NAME="menus_global">Global Menu</A></H4>
Items on the Global Menu affect all defined tracepoints. Users may:
<DL>
    <DT>Enable All
        <DD>Enable all tracepoints
    <DT>Disable All
        <DD>Disable all tracepoints
    <DT>Remove All
       <DD>Delete all tracepoints
</DL>
<BR>

<H4><A NAME="display">Tracepoint Display</A></H4>
The Tracepoint Display is a table of tracepoints. The first column of the
table (unlabeled) shows a checkbutton, indicating whether the tracepoint
is enabled (checked) or disabled (unchecked). Disabled tracepoints are
ignored and will not cause any actions to be performed on the target.

<P>To use the Tracepoint Menu or the Tracepoint Pop-up Menu, first use
the left mouse button to select a tracepoint from the list, then make the
menu selection.</P>

<H3>Modifying Tracepoints</H3>
To <A NAME="display_state">enable</A> a tracepoint, simply click the
checkbutton in the first column of the desired tracepoint so that it is
selected (checked). To disable a tracepoint, "uncheck" the checkbutton.

<P>To remove a <A NAME="display_remove">tracepoint</A>, use the left mouse
button to select the tracepoint to remove and use either the tracepoint Menu
or the Tracepoint Pop-up Menu to select "remove". To re-install a tracepoint,
use the <A HREF="source.html#setting_a_tracepoint">Source Window Display</A>.
</P>
<BR>

<H4><A NAME="display_popup">Tracepoint Pop-up Menu</A></H4>
The Tracepoint Pop-up Menu is accessed by using the mouse cursor to select
a tracepoint from the Tracepoint Display and then clicking the right button
on the mouse. The Pop-up allows expert users quicker access to the functions
of the Tracepoint Menu:
<DL>
    <DT>Actions
        <DD>Display the <A HREF="tracedlg.html">Tracepoint Dialog</A> for
            the selected tracepoint. This allows the tracepoint's actions
            to viewed or edited.
    <DT>Enabled
        <DD>The tracepoint is active and will causes actions to be
            performed on the target when it is hit
    <DT>Disabled
        <DD>The tracepoint is being ignored. A disabled tracepoint
            will never perform any actions or be recorded in the trace
            buffer.
    <DT>Remove
        <DD>Deletes the tracepoint
    <DT>Global, Enable All
        <DD>Enable all tracepoints
    <DT>Global, Disable All
        <DD>Disable all tracepoints
    <DT>Global, Remove All
       <DD>Delete all tracepoints
</DL>
</BODY>
</HTML>
