<html lang="en">
<head>
<title>tfind - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Analyze-Collected-Data.html#Analyze-Collected-Data" title="Analyze Collected Data">
<link rel="next" href="tdump.html#tdump" title="tdump">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software'' and ``Free Software Needs
Free Documentation'', with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.

(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
this GNU Manual.  Buying copies from GNU Press supports the FSF in
developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="tfind"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="tdump.html#tdump">tdump</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Analyze-Collected-Data.html#Analyze-Collected-Data">Analyze Collected Data</a>
<hr>
</div>

<h4 class="subsection">13.2.1 <code>tfind </code><var>n</var></h4>

<p><a name="index-tfind-741"></a><a name="index-select-trace-snapshot-742"></a><a name="index-find-trace-snapshot-743"></a>The basic command for selecting a trace snapshot from the buffer is
<code>tfind </code><var>n</var>, which finds trace snapshot number <var>n</var>,
counting from zero.  If no argument <var>n</var> is given, the next
snapshot is selected.

   <p>Here are the various forms of using the <code>tfind</code> command.

     <dl>
<dt><code>tfind start</code><dd>Find the first snapshot in the buffer.  This is a synonym for
<code>tfind 0</code> (since 0 is the number of the first snapshot).

     <br><dt><code>tfind none</code><dd>Stop debugging trace snapshots, resume <em>live</em> debugging.

     <br><dt><code>tfind end</code><dd>Same as &lsquo;<samp><span class="samp">tfind none</span></samp>&rsquo;.

     <br><dt><code>tfind</code><dd>No argument means find the next trace snapshot.

     <br><dt><code>tfind -</code><dd>Find the previous trace snapshot before the current one.  This permits
retracing earlier steps.

     <br><dt><code>tfind tracepoint </code><var>num</var><dd>Find the next snapshot associated with tracepoint <var>num</var>.  Search
proceeds forward from the last examined trace snapshot.  If no
argument <var>num</var> is given, it means find the next snapshot collected
for the same tracepoint as the current snapshot.

     <br><dt><code>tfind pc </code><var>addr</var><dd>Find the next snapshot associated with the value <var>addr</var> of the
program counter.  Search proceeds forward from the last examined trace
snapshot.  If no argument <var>addr</var> is given, it means find the next
snapshot with the same value of PC as the current snapshot.

     <br><dt><code>tfind outside </code><var>addr1</var><code>, </code><var>addr2</var><dd>Find the next snapshot whose PC is outside the given range of
addresses (exclusive).

     <br><dt><code>tfind range </code><var>addr1</var><code>, </code><var>addr2</var><dd>Find the next snapshot whose PC is between <var>addr1</var> and
<var>addr2</var> (inclusive).

     <br><dt><code>tfind line </code><span class="roman">[</span><var>file</var><code>:</code><span class="roman">]</span><var>n</var><dd>Find the next snapshot associated with the source line <var>n</var>.  If
the optional argument <var>file</var> is given, refer to line <var>n</var> in
that source file.  Search proceeds forward from the last examined
trace snapshot.  If no argument <var>n</var> is given, it means find the
next line other than the one currently being examined; thus saying
<code>tfind line</code> repeatedly can appear to have the same effect as
stepping from line to line in a <em>live</em> debugging session. 
</dl>

   <p>The default arguments for the <code>tfind</code> commands are specifically
designed to make it easy to scan through the trace buffer.  For
instance, <code>tfind</code> with no argument selects the next trace
snapshot, and <code>tfind -</code> with no argument selects the previous
trace snapshot.  So, by giving one <code>tfind</code> command, and then
simply hitting &lt;RET&gt; repeatedly you can examine all the trace
snapshots in order.  Or, by saying <code>tfind -</code> and then hitting
&lt;RET&gt; repeatedly you can examine the snapshots in reverse order. 
The <code>tfind line</code> command with no argument selects the snapshot
for the next source line executed.  The <code>tfind pc</code> command with
no argument selects the next snapshot with the same program counter
(PC) as the current frame.  The <code>tfind tracepoint</code> command with
no argument selects the next trace snapshot collected by the same
tracepoint as the current one.

   <p>In addition to letting you scan through the trace buffer manually,
these commands make it easy to construct <span class="sc">gdb</span> scripts that
scan through the trace buffer and print out whatever collected data
you are interested in.  Thus, if we want to examine the PC, FP, and SP
registers from each trace frame in the buffer, we can say this:

<pre class="smallexample">     (gdb) <b>tfind start</b>
     (gdb) <b>while ($trace_frame != -1)</b>
     &gt; printf "Frame %d, PC = %08X, SP = %08X, FP = %08X\n", \
               $trace_frame, $pc, $sp, $fp
     &gt; tfind
     &gt; end
     
     Frame 0, PC = 0020DC64, SP = 0030BF3C, FP = 0030BF44
     Frame 1, PC = 0020DC6C, SP = 0030BF38, FP = 0030BF44
     Frame 2, PC = 0020DC70, SP = 0030BF34, FP = 0030BF44
     Frame 3, PC = 0020DC74, SP = 0030BF30, FP = 0030BF44
     Frame 4, PC = 0020DC78, SP = 0030BF2C, FP = 0030BF44
     Frame 5, PC = 0020DC7C, SP = 0030BF28, FP = 0030BF44
     Frame 6, PC = 0020DC80, SP = 0030BF24, FP = 0030BF44
     Frame 7, PC = 0020DC84, SP = 0030BF20, FP = 0030BF44
     Frame 8, PC = 0020DC88, SP = 0030BF1C, FP = 0030BF44
     Frame 9, PC = 0020DC8E, SP = 0030BF18, FP = 0030BF44
     Frame 10, PC = 00203F6C, SP = 0030BE3C, FP = 0030BF14
</pre>
   <p>Or, if we want to examine the variable <code>X</code> at each source line in
the buffer:

<pre class="smallexample">     (gdb) <b>tfind start</b>
     (gdb) <b>while ($trace_frame != -1)</b>
     &gt; printf "Frame %d, X == %d\n", $trace_frame, X
     &gt; tfind line
     &gt; end
     
     Frame 0, X = 1
     Frame 7, X = 2
     Frame 13, X = 255
</pre>
   </body></html>

