1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- Copyright (C) 1988-2021 Free Software Foundation, Inc.
4
5Permission is granted to copy, distribute and/or modify this document
6under the terms of the GNU Free Documentation License, Version 1.3 or
7any later version published by the Free Software Foundation; with the
8Invariant Sections being "Free Software" and "Free Software Needs
9Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
10and with the Back-Cover Texts as in (a) below.
11
12(a) The FSF's Back-Cover Text is: "You are free to copy and modify
13this GNU Manual.  Buying copies from GNU Press supports the FSF in
14developing GNU and promoting software freedom." -->
15<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
16<head>
17<title>Debugging with GDB: Analyze Collected Data</title>
18
19<meta name="description" content="Debugging with GDB: Analyze Collected Data">
20<meta name="keywords" content="Debugging with GDB: Analyze Collected Data">
21<meta name="resource-type" content="document">
22<meta name="distribution" content="global">
23<meta name="Generator" content="makeinfo">
24<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
25<link href="index.html#Top" rel="start" title="Top">
26<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
27<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
28<link href="Tracepoints.html#Tracepoints" rel="up" title="Tracepoints">
29<link href="tfind.html#tfind" rel="next" title="tfind">
30<link href="Tracepoint-Restrictions.html#Tracepoint-Restrictions" rel="previous" title="Tracepoint Restrictions">
31<style type="text/css">
32<!--
33a.summary-letter {text-decoration: none}
34blockquote.smallquotation {font-size: smaller}
35div.display {margin-left: 3.2em}
36div.example {margin-left: 3.2em}
37div.indentedblock {margin-left: 3.2em}
38div.lisp {margin-left: 3.2em}
39div.smalldisplay {margin-left: 3.2em}
40div.smallexample {margin-left: 3.2em}
41div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
42div.smalllisp {margin-left: 3.2em}
43kbd {font-style:oblique}
44pre.display {font-family: inherit}
45pre.format {font-family: inherit}
46pre.menu-comment {font-family: serif}
47pre.menu-preformatted {font-family: serif}
48pre.smalldisplay {font-family: inherit; font-size: smaller}
49pre.smallexample {font-size: smaller}
50pre.smallformat {font-family: inherit; font-size: smaller}
51pre.smalllisp {font-size: smaller}
52span.nocodebreak {white-space:nowrap}
53span.nolinebreak {white-space:nowrap}
54span.roman {font-family:serif; font-weight:normal}
55span.sansserif {font-family:sans-serif; font-weight:normal}
56ul.no-bullet {list-style: none}
57-->
58</style>
59
60
61</head>
62
63<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
64<a name="Analyze-Collected-Data"></a>
65<div class="header">
66<p>
67Next: <a href="Tracepoint-Variables.html#Tracepoint-Variables" accesskey="n" rel="next">Tracepoint Variables</a>, Previous: <a href="Set-Tracepoints.html#Set-Tracepoints" accesskey="p" rel="previous">Set Tracepoints</a>, Up: <a href="Tracepoints.html#Tracepoints" accesskey="u" rel="up">Tracepoints</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
68</div>
69<hr>
70<a name="Using-the-Collected-Data"></a>
71<h3 class="section">13.2 Using the Collected Data</h3>
72
73<p>After the tracepoint experiment ends, you use <small>GDB</small> commands
74for examining the trace data.  The basic idea is that each tracepoint
75collects a trace <em>snapshot</em> every time it is hit and another
76snapshot every time it single-steps.  All these snapshots are
77consecutively numbered from zero and go into a buffer, and you can
78examine them later.  The way you examine them is to <em>focus</em> on a
79specific trace snapshot.  When the remote stub is focused on a trace
80snapshot, it will respond to all <small>GDB</small> requests for memory and
81registers by reading from the buffer which belongs to that snapshot,
82rather than from <em>real</em> memory or registers of the program being
83debugged.  This means that <strong>all</strong> <small>GDB</small> commands
84(<code>print</code>, <code>info registers</code>, <code>backtrace</code>, etc.) will
85behave as if we were currently debugging the program state as it was
86when the tracepoint occurred.  Any requests for data that are not in
87the buffer will fail.
88</p>
89<table class="menu" border="0" cellspacing="0">
90<tr><td align="left" valign="top">&bull; <a href="tfind.html#tfind" accesskey="1">tfind</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to select a trace snapshot
91</td></tr>
92<tr><td align="left" valign="top">&bull; <a href="tdump.html#tdump" accesskey="2">tdump</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to display all data for a snapshot
93</td></tr>
94<tr><td align="left" valign="top">&bull; <a href="save-tracepoints.html#save-tracepoints" accesskey="3">save tracepoints</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to save tracepoints for a future run
95</td></tr>
96</table>
97
98
99
100
101</body>
102</html>
103