Tracepoints.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Free Software" and "Free Software Needs
  8. Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
  9. and with the Back-Cover Texts as in (a) below.
  10. (a) The FSF's Back-Cover Text is: "You are free to copy and modify
  11. this GNU Manual. Buying copies from GNU Press supports the FSF in
  12. developing GNU and promoting software freedom." -->
  13. <!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
  14. <head>
  15. <title>Debugging with GDB: Tracepoints</title>
  16. <meta name="description" content="Debugging with GDB: Tracepoints">
  17. <meta name="keywords" content="Debugging with GDB: Tracepoints">
  18. <meta name="resource-type" content="document">
  19. <meta name="distribution" content="global">
  20. <meta name="Generator" content="makeinfo">
  21. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  22. <link href="index.html#Top" rel="start" title="Top">
  23. <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
  24. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  25. <link href="index.html#Top" rel="up" title="Top">
  26. <link href="Set-Tracepoints.html#Set-Tracepoints" rel="next" title="Set Tracepoints">
  27. <link href="Macros.html#Macros" rel="previous" title="Macros">
  28. <style type="text/css">
  29. <!--
  30. a.summary-letter {text-decoration: none}
  31. blockquote.smallquotation {font-size: smaller}
  32. div.display {margin-left: 3.2em}
  33. div.example {margin-left: 3.2em}
  34. div.indentedblock {margin-left: 3.2em}
  35. div.lisp {margin-left: 3.2em}
  36. div.smalldisplay {margin-left: 3.2em}
  37. div.smallexample {margin-left: 3.2em}
  38. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  39. div.smalllisp {margin-left: 3.2em}
  40. kbd {font-style:oblique}
  41. pre.display {font-family: inherit}
  42. pre.format {font-family: inherit}
  43. pre.menu-comment {font-family: serif}
  44. pre.menu-preformatted {font-family: serif}
  45. pre.smalldisplay {font-family: inherit; font-size: smaller}
  46. pre.smallexample {font-size: smaller}
  47. pre.smallformat {font-family: inherit; font-size: smaller}
  48. pre.smalllisp {font-size: smaller}
  49. span.nocodebreak {white-space:nowrap}
  50. span.nolinebreak {white-space:nowrap}
  51. span.roman {font-family:serif; font-weight:normal}
  52. span.sansserif {font-family:sans-serif; font-weight:normal}
  53. ul.no-bullet {list-style: none}
  54. -->
  55. </style>
  56. </head>
  57. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  58. <a name="Tracepoints"></a>
  59. <div class="header">
  60. <p>
  61. Next: <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> &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>
  62. </div>
  63. <hr>
  64. <a name="Tracepoints-1"></a>
  65. <h2 class="chapter">13 Tracepoints</h2>
  66. <a name="index-tracepoints"></a>
  67. <p>In some applications, it is not feasible for the debugger to interrupt
  68. the program&rsquo;s execution long enough for the developer to learn
  69. anything helpful about its behavior. If the program&rsquo;s correctness
  70. depends on its real-time behavior, delays introduced by a debugger
  71. might cause the program to change its behavior drastically, or perhaps
  72. fail, even when the code itself is correct. It is useful to be able
  73. to observe the program&rsquo;s behavior without interrupting it.
  74. </p>
  75. <p>Using <small>GDB</small>&rsquo;s <code>trace</code> and <code>collect</code> commands, you can
  76. specify locations in the program, called <em>tracepoints</em>, and
  77. arbitrary expressions to evaluate when those tracepoints are reached.
  78. Later, using the <code>tfind</code> command, you can examine the values
  79. those expressions had when the program hit the tracepoints. The
  80. expressions may also denote objects in memory&mdash;structures or arrays,
  81. for example&mdash;whose values <small>GDB</small> should record; while visiting
  82. a particular tracepoint, you may inspect those objects as if they were
  83. in memory at that moment. However, because <small>GDB</small> records these
  84. values without interacting with you, it can do so quickly and
  85. unobtrusively, hopefully not disturbing the program&rsquo;s behavior.
  86. </p>
  87. <p>The tracepoint facility is currently available only for remote
  88. targets. See <a href="Targets.html#Targets">Targets</a>. In addition, your remote target must know
  89. how to collect trace data. This functionality is implemented in the
  90. remote stub; however, none of the stubs distributed with <small>GDB</small>
  91. support tracepoints as of this writing. The format of the remote
  92. packets used to implement tracepoints are described in <a href="Tracepoint-Packets.html#Tracepoint-Packets">Tracepoint Packets</a>.
  93. </p>
  94. <p>It is also possible to get trace data from a file, in a manner reminiscent
  95. of corefiles; you specify the filename, and use <code>tfind</code> to search
  96. through the file. See <a href="Trace-Files.html#Trace-Files">Trace Files</a>, for more details.
  97. </p>
  98. <p>This chapter describes the tracepoint commands and features.
  99. </p>
  100. <table class="menu" border="0" cellspacing="0">
  101. <tr><td align="left" valign="top">&bull; <a href="Set-Tracepoints.html#Set-Tracepoints" accesskey="1">Set Tracepoints</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  102. </td></tr>
  103. <tr><td align="left" valign="top">&bull; <a href="Analyze-Collected-Data.html#Analyze-Collected-Data" accesskey="2">Analyze Collected Data</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  104. </td></tr>
  105. <tr><td align="left" valign="top">&bull; <a href="Tracepoint-Variables.html#Tracepoint-Variables" accesskey="3">Tracepoint Variables</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  106. </td></tr>
  107. <tr><td align="left" valign="top">&bull; <a href="Trace-Files.html#Trace-Files" accesskey="4">Trace Files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  108. </td></tr>
  109. </table>
  110. <hr>
  111. <div class="header">
  112. <p>
  113. Next: <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> &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>
  114. </div>
  115. </body>
  116. </html>