hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2021 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." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Debugging with GDB: Trace Files</title>
 
<meta name="description" content="Debugging with GDB: Trace Files">
<meta name="keywords" content="Debugging with GDB: Trace Files">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Tracepoints.html#Tracepoints" rel="up" title="Tracepoints">
<link href="Overlays.html#Overlays" rel="next" title="Overlays">
<link href="Tracepoint-Variables.html#Tracepoint-Variables" rel="previous" title="Tracepoint Variables">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
 
 
</head>
 
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Trace-Files"></a>
<div class="header">
<p>
Previous: <a href="Tracepoint-Variables.html#Tracepoint-Variables" accesskey="p" rel="previous">Tracepoint Variables</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>
</div>
<hr>
<a name="Using-Trace-Files"></a>
<h3 class="section">13.4 Using Trace Files</h3>
<a name="index-trace-files"></a>
 
<p>In some situations, the target running a trace experiment may no
longer be available; perhaps it crashed, or the hardware was needed
for a different activity.  To handle these cases, you can arrange to
dump the trace data into a file, and later use that file as a source
of trace data, via the <code>target tfile</code> command.
</p>
<dl compact="compact">
<dd>
<a name="index-tsave"></a>
</dd>
<dt><code>tsave [ -r ] <var>filename</var></code></dt>
<dt><code>tsave [-ctf] <var>dirname</var></code></dt>
<dd><p>Save the trace data to <var>filename</var>.  By default, this command
assumes that <var>filename</var> refers to the host filesystem, so if
necessary <small>GDB</small> will copy raw trace data up from the target and
then save it.  If the target supports it, you can also supply the
optional argument <code>-r</code> (&ldquo;remote&rdquo;) to direct the target to save
the data directly into <var>filename</var> in its own filesystem, which may be
more efficient if the trace buffer is very large.  (Note, however, that
<code>target tfile</code> can only read from files accessible to the host.)
By default, this command will save trace frame in tfile format.
You can supply the optional argument <code>-ctf</code> to save data in CTF
format.  The <em>Common Trace Format</em> (CTF) is proposed as a trace format
that can be shared by multiple debugging and tracing tools.  Please go to
&lsquo;<code>http://www.efficios.com/ctf</code>&rsquo; to get more information.
</p>
<a name="index-target-tfile"></a>
<a name="index-tfile"></a>
<a name="index-target-ctf"></a>
<a name="index-ctf"></a>
</dd>
<dt><code>target tfile <var>filename</var></code></dt>
<dt><code>target ctf <var>dirname</var></code></dt>
<dd><p>Use the file named <var>filename</var> or directory named <var>dirname</var> as
a source of trace data.  Commands that examine data work as they do with
a live target, but it is not possible to run any new trace experiments.
<code>tstatus</code> will report the state of the trace run at the moment
the data was saved, as well as the current trace frame you are examining.
Both <var>filename</var> and <var>dirname</var> must be on a filesystem accessible to
the host.
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) target ctf ctf.ctf
(gdb) tfind
Found trace frame 0, tracepoint 2
39            ++a;  /* set tracepoint 1 here */
(gdb) tdump
Data collected at tracepoint 2, trace frame 0:
i = 0
a = 0
b = 1 '\001'
c = {&quot;123&quot;, &quot;456&quot;, &quot;789&quot;, &quot;123&quot;, &quot;456&quot;, &quot;789&quot;}
d = {{{a = 1, b = 2}, {a = 3, b = 4}}, {{a = 5, b = 6}, {a = 7, b = 8}}}
(gdb) p b
$1 = 1
</pre></div>
 
</dd>
</dl>
 
<hr>
<div class="header">
<p>
Previous: <a href="Tracepoint-Variables.html#Tracepoint-Variables" accesskey="p" rel="previous">Tracepoint Variables</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>
</div>
 
 
 
</body>
</html>