You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Branch-Trace-Format.html 5.4KB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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 6.5, http://www.gnu.org/software/texinfo/ -->
  14. <head>
  15. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  16. <title>Branch Trace Format (Debugging with GDB)</title>
  17. <meta name="description" content="Branch Trace Format (Debugging with GDB)">
  18. <meta name="keywords" content="Branch Trace Format (Debugging with GDB)">
  19. <meta name="resource-type" content="document">
  20. <meta name="distribution" content="global">
  21. <meta name="Generator" content="makeinfo">
  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="Remote-Protocol.html#Remote-Protocol" rel="up" title="Remote Protocol">
  26. <link href="Branch-Trace-Configuration-Format.html#Branch-Trace-Configuration-Format" rel="next" title="Branch Trace Configuration Format">
  27. <link href="Traceframe-Info-Format.html#Traceframe-Info-Format" rel="prev" title="Traceframe Info Format">
  28. <style type="text/css">
  29. <!--
  30. a.summary-letter {text-decoration: none}
  31. blockquote.indentedblock {margin-right: 0em}
  32. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  33. blockquote.smallquotation {font-size: smaller}
  34. div.display {margin-left: 3.2em}
  35. div.example {margin-left: 3.2em}
  36. div.lisp {margin-left: 3.2em}
  37. div.smalldisplay {margin-left: 3.2em}
  38. div.smallexample {margin-left: 3.2em}
  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.nolinebreak {white-space: nowrap}
  50. span.roman {font-family: initial; font-weight: normal}
  51. span.sansserif {font-family: sans-serif; font-weight: normal}
  52. ul.no-bullet {list-style: none}
  53. -->
  54. </style>
  55. </head>
  56. <body lang="en">
  57. <a name="Branch-Trace-Format"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Branch-Trace-Configuration-Format.html#Branch-Trace-Configuration-Format" accesskey="n" rel="next">Branch Trace Configuration Format</a>, Previous: <a href="Traceframe-Info-Format.html#Traceframe-Info-Format" accesskey="p" rel="prev">Traceframe Info Format</a>, Up: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="u" rel="up">Remote Protocol</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>
  61. </div>
  62. <hr>
  63. <a name="Branch-Trace-Format-1"></a>
  64. <h3 class="section">E.19 Branch Trace Format</h3>
  65. <a name="index-branch-trace-format"></a>
  66. <p>In order to display the branch trace of an inferior thread,
  67. <small>GDB</small> needs to obtain the list of branches. This list is
  68. represented as list of sequential code blocks that are connected via
  69. branches. The code in each block has been executed sequentially.
  70. </p>
  71. <p>This list is obtained using the &lsquo;<samp>qXfer:btrace:read</samp>&rsquo;
  72. (see <a href="General-Query-Packets.html#qXfer-btrace-read">qXfer btrace read</a>) packet and is an XML document.
  73. </p>
  74. <p><small>GDB</small> must be linked with the Expat library to support XML
  75. traceframe info discovery. See <a href="Requirements.html#Expat">Expat</a>.
  76. </p>
  77. <p>The top-level structure of the document is shown below:
  78. </p>
  79. <div class="smallexample">
  80. <pre class="smallexample">&lt;?xml version=&quot;1.0&quot;?&gt;
  81. &lt;!DOCTYPE btrace
  82. PUBLIC &quot;+//IDN gnu.org//DTD GDB Branch Trace V1.0//EN&quot;
  83. &quot;http://sourceware.org/gdb/gdb-btrace.dtd&quot;&gt;
  84. &lt;btrace&gt;
  85. block...
  86. &lt;/btrace&gt;
  87. </pre></div>
  88. <ul>
  89. <li> A block of sequentially executed instructions starting at <var>begin</var>
  90. and ending at <var>end</var>:
  91. <div class="smallexample">
  92. <pre class="smallexample">&lt;block begin=&quot;<var>begin</var>&quot; end=&quot;<var>end</var>&quot;/&gt;
  93. </pre></div>
  94. </li></ul>
  95. <p>The formal DTD for the branch trace format is given below:
  96. </p>
  97. <div class="smallexample">
  98. <pre class="smallexample">&lt;!ELEMENT btrace (block* | pt) &gt;
  99. &lt;!ATTLIST btrace version CDATA #FIXED &quot;1.0&quot;&gt;
  100. &lt;!ELEMENT block EMPTY&gt;
  101. &lt;!ATTLIST block begin CDATA #REQUIRED
  102. end CDATA #REQUIRED&gt;
  103. &lt;!ELEMENT pt (pt-config?, raw?)&gt;
  104. &lt;!ELEMENT pt-config (cpu?)&gt;
  105. &lt;!ELEMENT cpu EMPTY&gt;
  106. &lt;!ATTLIST cpu vendor CDATA #REQUIRED
  107. family CDATA #REQUIRED
  108. model CDATA #REQUIRED
  109. stepping CDATA #REQUIRED&gt;
  110. &lt;!ELEMENT raw (#PCDATA)&gt;
  111. </pre></div>
  112. </body>
  113. </html>