Trace-File-Format.html 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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: Trace File Format</title>
  16. <meta name="description" content="Debugging with GDB: Trace File Format">
  17. <meta name="keywords" content="Debugging with GDB: Trace File Format">
  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="Index-Section-Format.html#Index-Section-Format" rel="next" title="Index Section Format">
  27. <link href="Process-list.html#Process-list" rel="previous" title="Process list">
  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="Trace-File-Format"></a>
  59. <div class="header">
  60. <p>
  61. Next: <a href="Index-Section-Format.html#Index-Section-Format" accesskey="n" rel="next">Index Section Format</a>, Previous: <a href="Operating-System-Information.html#Operating-System-Information" accesskey="p" rel="previous">Operating System Information</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="Trace-File-Format-1"></a>
  65. <h2 class="appendix">Appendix I Trace File Format</h2>
  66. <a name="index-trace-file-format"></a>
  67. <p>The trace file comes in three parts: a header, a textual description
  68. section, and a trace frame section with binary data.
  69. </p>
  70. <p>The header has the form <code>\x7fTRACE0\n</code>. The first byte is
  71. <code>0x7f</code> so as to indicate that the file contains binary data,
  72. while the <code>0</code> is a version number that may have different values
  73. in the future.
  74. </p>
  75. <p>The description section consists of multiple lines of <small>ASCII</small> text
  76. separated by newline characters (<code>0xa</code>). The lines may include a
  77. variety of optional descriptive or context-setting information, such
  78. as tracepoint definitions or register set size. <small>GDB</small> will
  79. ignore any line that it does not recognize. An empty line marks the end
  80. of this section.
  81. </p>
  82. <dl compact="compact">
  83. <dt><code>R <var>size</var></code></dt>
  84. <dd><p>Specifies the size of a register block in bytes. This is equal to the
  85. size of a <code>g</code> packet payload in the remote protocol. <var>size</var>
  86. is an ascii decimal number. There should be only one such line in
  87. a single trace file.
  88. </p>
  89. </dd>
  90. <dt><code>status <var>status</var></code></dt>
  91. <dd><p>Trace status. <var>status</var> has the same format as a <code>qTStatus</code>
  92. remote packet reply. There should be only one such line in a single trace
  93. file.
  94. </p>
  95. </dd>
  96. <dt><code>tp <var>payload</var></code></dt>
  97. <dd><p>Tracepoint definition. The <var>payload</var> has the same format as
  98. <code>qTfP</code>/<code>qTsP</code> remote packet reply payload. A single tracepoint
  99. may take multiple lines of definition, corresponding to the multiple
  100. reply packets.
  101. </p>
  102. </dd>
  103. <dt><code>tsv <var>payload</var></code></dt>
  104. <dd><p>Trace state variable definition. The <var>payload</var> has the same format as
  105. <code>qTfV</code>/<code>qTsV</code> remote packet reply payload. A single variable
  106. may take multiple lines of definition, corresponding to the multiple
  107. reply packets.
  108. </p>
  109. </dd>
  110. <dt><code>tdesc <var>payload</var></code></dt>
  111. <dd><p>Target description in XML format. The <var>payload</var> is a single line of
  112. the XML file. All such lines should be concatenated together to get
  113. the original XML file. This file is in the same format as <code>qXfer</code>
  114. <code>features</code> payload, and corresponds to the main <code>target.xml</code>
  115. file. Includes are not allowed.
  116. </p>
  117. </dd>
  118. </dl>
  119. <p>The trace frame section consists of a number of consecutive frames.
  120. Each frame begins with a two-byte tracepoint number, followed by a
  121. four-byte size giving the amount of data in the frame. The data in
  122. the frame consists of a number of blocks, each introduced by a
  123. character indicating its type (at least register, memory, and trace
  124. state variable). The data in this section is raw binary, not a
  125. hexadecimal or other encoding; its endianness matches the target&rsquo;s
  126. endianness.
  127. </p>
  128. <dl compact="compact">
  129. <dt><code>R <var>bytes</var></code></dt>
  130. <dd><p>Register block. The number and ordering of bytes matches that of a
  131. <code>g</code> packet in the remote protocol. Note that these are the
  132. actual bytes, in target order, not a hexadecimal encoding.
  133. </p>
  134. </dd>
  135. <dt><code>M <var>address</var> <var>length</var> <var>bytes</var>...</code></dt>
  136. <dd><p>Memory block. This is a contiguous block of memory, at the 8-byte
  137. address <var>address</var>, with a 2-byte length <var>length</var>, followed by
  138. <var>length</var> bytes.
  139. </p>
  140. </dd>
  141. <dt><code>V <var>number</var> <var>value</var></code></dt>
  142. <dd><p>Trace state variable block. This records the 8-byte signed value
  143. <var>value</var> of trace state variable numbered <var>number</var>.
  144. </p>
  145. </dd>
  146. </dl>
  147. <p>Future enhancements of the trace file format may include additional types
  148. of blocks.
  149. </p>
  150. <hr>
  151. <div class="header">
  152. <p>
  153. Next: <a href="Index-Section-Format.html#Index-Section-Format" accesskey="n" rel="next">Index Section Format</a>, Previous: <a href="Operating-System-Information.html#Operating-System-Information" accesskey="p" rel="previous">Operating System Information</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>
  154. </div>
  155. </body>
  156. </html>