gdb: Set Tracepoints

 
 13.1 Commands to Set Tracepoints
 ================================
 
 Before running such a "trace experiment", an arbitrary number of
 tracepoints can be set.  A tracepoint is actually a special type of
 breakpoint (SeeSet Breaks), so you can manipulate it using standard
 breakpoint commands.  For instance, as with breakpoints, tracepoint
 numbers are successive integers starting from one, and many of the
 commands associated with tracepoints take the tracepoint number as their
 argument, to identify which tracepoint to work on.
 
    For each tracepoint, you can specify, in advance, some arbitrary set
 of data that you want the target to collect in the trace buffer when it
 hits that tracepoint.  The collected data can include registers, local
 variables, or global data.  Later, you can use GDB commands to examine
 the values these data had at the time the tracepoint was hit.
 
    Tracepoints do not support every breakpoint feature.  Ignore counts
 on tracepoints have no effect, and tracepoints cannot run GDB commands
 when they are hit.  Tracepoints may not be thread-specific either.
 
    Some targets may support "fast tracepoints", which are inserted in a
 different way (such as with a jump instead of a trap), that is faster
 but possibly restricted in where they may be installed.
 
    Regular and fast tracepoints are dynamic tracing facilities, meaning
 that they can be used to insert tracepoints at (almost) any location in
 the target.  Some targets may also support controlling "static
 tracepoints" from GDB.  With static tracing, a set of instrumentation
 points, also known as "markers", are embedded in the target program, and
 can be activated or deactivated by name or address.  These are usually
 placed at locations which facilitate investigating what the target is
 actually doing.  GDB's support for static tracing includes being able to
 list instrumentation points, and attach them with GDB defined high level
 tracepoints that expose the whole range of convenience of GDB's
 tracepoints support.  Namely, support for collecting registers values
 and values of global or local (to the instrumentation point) variables;
 tracepoint conditions and trace state variables.  The act of installing
 a GDB static tracepoint on an instrumentation point, or marker, is
 referred to as "probing" a static tracepoint marker.
 
    'gdbserver' supports tracepoints on some target systems.  See
 Tracepoints support in 'gdbserver' Server.
 
    This section describes commands to set tracepoints and associated
 conditions and actions.
 

Menu