# Tracepoint Dialogs

### Overview

There are two Tracepoint Dialogs which help users set tracepoints: The Tracepoint Dialog is used to view and add actions and The Actions Dialog is used to edit a particular action specified in the tracepoint's Action List.

Tracepoint Dialogs topics:

- The Tracepoint Dialog
  - Experiment Frame
  - Actions Frame
    - Number of Passes
    - Adding Actions
    - Modifying Actions
- The Actions Dialog
  - Variables List
  - Collection List
  - Other Entry

### The Tracepoint Dialog

The Tracepoint Dialog is the gateway to viewing and editing the properties of any tracepoint. The same dialog is used to add new tracepoints and edit and delete existing tracepoints, for both single tracepoints and ranges of tracepoints.

#### Experiment Frame

The Experiment Frame displays information about the tracepoint's location in the program and its status. Specifically,

Number
  The internal number for this tracepoint. New tracepoints all have the number "-1". This number may be used to refer to specific tracepoints when using the Console Window
Hit Count
  The number of times the tracepoint has been hit
Thread
  The thread in which the tracepoint exists. This feature is not currently implemented.
Function
  The function in which the tracepoint is set
File
  The file in which the tracepoint is set
Line(s)
  The line at which the tracepoint is set or the lines which the tracepoint range affects

#### Actions Frame

The Actions Frame displays the user-settable properties of the tracepoint, including all actions and a pass count.

A pass count specifies the number of times that the tracepoint can be hit on the target before the tracing experiment ceases. A pass count of five means that this tracepoint will issue a silent "tstop" when it is hit the fifth time (after it has performed all it actions). A pass count of zero (0) means that the tracepoint will never causes the trace experiment to terminate on the target.

To add an action for the tracepoint, select the appropriate action from the Action ComboBox and click "Add". The Action Dialog appears to allow editing the action's properties.

Currently, there are two actions: collect and while-stepping. Any number of collect actions may be added to specify that the target should collect variables, registers, and memory when it is hit. The while-stepping action may be used to collect data for a specified number of machine instructions. Only one while-stepping action may be specified for any tracepoint.

To modify the actions associated with a tracepoint, double-click the left mouse button on the action listed in the Action Frame, and the Actions Dialog will appear.

To accept the tracepoint as displayed, click the OK button. To abort installing or editing the tracepoint, click the CANCEL button. To delete the tracepoint (if it is not a new tracepoint), click the DELETE button.

### The Actions Dialog

The Actions Dialog is used to edit an action for the tracepoint. It consists of two lists, one containing all (uncollected) local variables (including function arguments) and registers, and one containing everything being collected.

The Variables List lists all uncollected local variables, function arguments, and registers and may also display the special indentifiers "All Locals", "All Arguments", and "All Registers". Global variables (and file static variables) do not appear on the Variable List.

To move a variable from the Variables List to the Collection List, double-click the variable in the Variables List or select the variable in the Variable List and press the "<<< Collect" button. To specify a range of variables to be collected, select them in the Variables list and click the "<<< Collect" button.

The Collection List displays all data being collected by the action, including the special types "All Locals", "All Registers", and "All Arguments", which specify that every local variable, every register, and every function argument will be collected, respectively. Specifying a local variable, for example, and "All Locals" will cause only the special identifier "All Locals" to be sent to the target. Analogously, "All Registers" and "All Arguments" also override any register or function argument specifically listed in the Collection List.

To remove data from the Collection List, double-click any of the entries listed in the List, or select a range of data to be removed and press the "Ignore >>>" button. All local variables, function arguments, registers, and special identifiers will be returned to the Variable List, while any expression (memory ranges, globals) will simply "disappear". To add these again, use the Other Entry at the bottom of the display.

The Other Entry can be used to move any variable listed in either the Collection List or the Variable List to the other list. It can also be used to specify expressions for collection, such as memory ranges and global variables. Simply enter the name of the global variable or the expression and press the enter key on the keyboard. If the expression is valid, it will be added/removed from the Collection List.