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.

Library-List-Format.html 7.3KB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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>Library List Format (Debugging with GDB)</title>
  17. <meta name="description" content="Library List Format (Debugging with GDB)">
  18. <meta name="keywords" content="Library List 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="Library-List-Format-for-SVR4-Targets.html#Library-List-Format-for-SVR4-Targets" rel="next" title="Library List Format for SVR4 Targets">
  27. <link href="File_002dI_002fO-Examples.html#File_002dI_002fO-Examples" rel="prev" title="File-I/O Examples">
  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="Library-List-Format"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Library-List-Format-for-SVR4-Targets.html#Library-List-Format-for-SVR4-Targets" accesskey="n" rel="next">Library List Format for SVR4 Targets</a>, Previous: <a href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension" accesskey="p" rel="prev">File-I/O Remote Protocol Extension</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="Library-List-Format-1"></a>
  64. <h3 class="section">E.14 Library List Format</h3>
  65. <a name="index-library-list-format_002c-remote-protocol"></a>
  66. <p>On some platforms, a dynamic loader (e.g. <samp>ld.so</samp>) runs in the
  67. same process as your application to manage libraries. In this case,
  68. <small>GDB</small> can use the loader&rsquo;s symbol table and normal memory
  69. operations to maintain a list of shared libraries. On other
  70. platforms, the operating system manages loaded libraries.
  71. <small>GDB</small> can not retrieve the list of currently loaded libraries
  72. through memory operations, so it uses the &lsquo;<samp>qXfer:libraries:read</samp>&rsquo;
  73. packet (see <a href="General-Query-Packets.html#qXfer-library-list-read">qXfer library list read</a>) instead. The remote stub
  74. queries the target&rsquo;s operating system and reports which libraries
  75. are loaded.
  76. </p>
  77. <p>The &lsquo;<samp>qXfer:libraries:read</samp>&rsquo; packet returns an XML document which
  78. lists loaded libraries and their offsets. Each library has an
  79. associated name and one or more segment or section base addresses,
  80. which report where the library was loaded in memory.
  81. </p>
  82. <p>For the common case of libraries that are fully linked binaries, the
  83. library should have a list of segments. If the target supports
  84. dynamic linking of a relocatable object file, its library XML element
  85. should instead include a list of allocated sections. The segment or
  86. section bases are start addresses, not relocation offsets; they do not
  87. depend on the library&rsquo;s link-time base addresses.
  88. </p>
  89. <p><small>GDB</small> must be linked with the Expat library to support XML
  90. library lists. See <a href="Requirements.html#Expat">Expat</a>.
  91. </p>
  92. <p>A simple memory map, with one loaded library relocated by a single
  93. offset, looks like this:
  94. </p>
  95. <div class="smallexample">
  96. <pre class="smallexample">&lt;library-list&gt;
  97. &lt;library name=&quot;/lib/libc.so.6&quot;&gt;
  98. &lt;segment address=&quot;0x10000000&quot;/&gt;
  99. &lt;/library&gt;
  100. &lt;/library-list&gt;
  101. </pre></div>
  102. <p>Another simple memory map, with one loaded library with three
  103. allocated sections (.text, .data, .bss), looks like this:
  104. </p>
  105. <div class="smallexample">
  106. <pre class="smallexample">&lt;library-list&gt;
  107. &lt;library name=&quot;sharedlib.o&quot;&gt;
  108. &lt;section address=&quot;0x10000000&quot;/&gt;
  109. &lt;section address=&quot;0x20000000&quot;/&gt;
  110. &lt;section address=&quot;0x30000000&quot;/&gt;
  111. &lt;/library&gt;
  112. &lt;/library-list&gt;
  113. </pre></div>
  114. <p>The format of a library list is described by this DTD:
  115. </p>
  116. <div class="smallexample">
  117. <pre class="smallexample">&lt;!-- library-list: Root element with versioning --&gt;
  118. &lt;!ELEMENT library-list (library)*&gt;
  119. &lt;!ATTLIST library-list version CDATA #FIXED &quot;1.0&quot;&gt;
  120. &lt;!ELEMENT library (segment*, section*)&gt;
  121. &lt;!ATTLIST library name CDATA #REQUIRED&gt;
  122. &lt;!ELEMENT segment EMPTY&gt;
  123. &lt;!ATTLIST segment address CDATA #REQUIRED&gt;
  124. &lt;!ELEMENT section EMPTY&gt;
  125. &lt;!ATTLIST section address CDATA #REQUIRED&gt;
  126. </pre></div>
  127. <p>In addition, segments and section descriptors cannot be mixed within a
  128. single library element, and you must supply at least one segment or
  129. section for each library.
  130. </p>
  131. <hr>
  132. <div class="header">
  133. <p>
  134. Next: <a href="Library-List-Format-for-SVR4-Targets.html#Library-List-Format-for-SVR4-Targets" accesskey="n" rel="next">Library List Format for SVR4 Targets</a>, Previous: <a href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension" accesskey="p" rel="prev">File-I/O Remote Protocol Extension</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>
  135. </div>
  136. </body>
  137. </html>