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: Tracepoints</title> 18 19<meta name="description" content="Debugging with GDB: Tracepoints"> 20<meta name="keywords" content="Debugging with GDB: Tracepoints"> 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="index.html#Top" rel="up" title="Top"> 29<link href="Set-Tracepoints.html#Set-Tracepoints" rel="next" title="Set Tracepoints"> 30<link href="Macros.html#Macros" rel="previous" title="Macros"> 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="Tracepoints"></a> 65<div class="header"> 66<p> 67Next: <a href="Overlays.html#Overlays" accesskey="n" rel="next">Overlays</a>, Previous: <a href="Macros.html#Macros" accesskey="p" rel="previous">Macros</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</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="Tracepoints-1"></a> 71<h2 class="chapter">13 Tracepoints</h2> 72 73<a name="index-tracepoints"></a> 74<p>In some applications, it is not feasible for the debugger to interrupt 75the program’s execution long enough for the developer to learn 76anything helpful about its behavior. If the program’s correctness 77depends on its real-time behavior, delays introduced by a debugger 78might cause the program to change its behavior drastically, or perhaps 79fail, even when the code itself is correct. It is useful to be able 80to observe the program’s behavior without interrupting it. 81</p> 82<p>Using <small>GDB</small>’s <code>trace</code> and <code>collect</code> commands, you can 83specify locations in the program, called <em>tracepoints</em>, and 84arbitrary expressions to evaluate when those tracepoints are reached. 85Later, using the <code>tfind</code> command, you can examine the values 86those expressions had when the program hit the tracepoints. The 87expressions may also denote objects in memory—structures or arrays, 88for example—whose values <small>GDB</small> should record; while visiting 89a particular tracepoint, you may inspect those objects as if they were 90in memory at that moment. However, because <small>GDB</small> records these 91values without interacting with you, it can do so quickly and 92unobtrusively, hopefully not disturbing the program’s behavior. 93</p> 94<p>The tracepoint facility is currently available only for remote 95targets. See <a href="Targets.html#Targets">Targets</a>. In addition, your remote target must know 96how to collect trace data. This functionality is implemented in the 97remote stub; however, none of the stubs distributed with <small>GDB</small> 98support tracepoints as of this writing. The format of the remote 99packets used to implement tracepoints are described in <a href="Tracepoint-Packets.html#Tracepoint-Packets">Tracepoint Packets</a>. 100</p> 101<p>It is also possible to get trace data from a file, in a manner reminiscent 102of corefiles; you specify the filename, and use <code>tfind</code> to search 103through the file. See <a href="Trace-Files.html#Trace-Files">Trace Files</a>, for more details. 104</p> 105<p>This chapter describes the tracepoint commands and features. 106</p> 107<table class="menu" border="0" cellspacing="0"> 108<tr><td align="left" valign="top">• <a href="Set-Tracepoints.html#Set-Tracepoints" accesskey="1">Set Tracepoints</a>:</td><td> </td><td align="left" valign="top"> 109</td></tr> 110<tr><td align="left" valign="top">• <a href="Analyze-Collected-Data.html#Analyze-Collected-Data" accesskey="2">Analyze Collected Data</a>:</td><td> </td><td align="left" valign="top"> 111</td></tr> 112<tr><td align="left" valign="top">• <a href="Tracepoint-Variables.html#Tracepoint-Variables" accesskey="3">Tracepoint Variables</a>:</td><td> </td><td align="left" valign="top"> 113</td></tr> 114<tr><td align="left" valign="top">• <a href="Trace-Files.html#Trace-Files" accesskey="4">Trace Files</a>:</td><td> </td><td align="left" valign="top"> 115</td></tr> 116</table> 117 118<hr> 119<div class="header"> 120<p> 121Next: <a href="Overlays.html#Overlays" accesskey="n" rel="next">Overlays</a>, Previous: <a href="Macros.html#Macros" accesskey="p" rel="previous">Macros</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</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> 122</div> 123 124 125 126</body> 127</html> 128