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> [<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">• <a href="tfind.html#tfind" accesskey="1">tfind</a>:</td><td> </td><td align="left" valign="top">How to select a trace snapshot 91</td></tr> 92<tr><td align="left" valign="top">• <a href="tdump.html#tdump" accesskey="2">tdump</a>:</td><td> </td><td align="left" valign="top">How to display all data for a snapshot 93</td></tr> 94<tr><td align="left" valign="top">• <a href="save-tracepoints.html#save-tracepoints" accesskey="3">save tracepoints</a>:</td><td> </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