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.

Which-flavor-to-choose_003f.html 5.3KB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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>Which flavor to choose? (Debugging with GDB)</title>
  17. <meta name="description" content="Which flavor to choose? (Debugging with GDB)">
  18. <meta name="keywords" content="Which flavor to choose? (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="Auto_002dloading-extensions.html#Auto_002dloading-extensions" rel="up" title="Auto-loading extensions">
  26. <link href="Multiple-Extension-Languages.html#Multiple-Extension-Languages" rel="next" title="Multiple Extension Languages">
  27. <link href="dotdebug_005fgdb_005fscripts-section.html#dotdebug_005fgdb_005fscripts-section" rel="prev" title="dotdebug_gdb_scripts section">
  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="Which-flavor-to-choose_003f"></a>
  58. <div class="header">
  59. <p>
  60. Previous: <a href="dotdebug_005fgdb_005fscripts-section.html#dotdebug_005fgdb_005fscripts-section" accesskey="p" rel="prev">dotdebug_gdb_scripts section</a>, Up: <a href="Auto_002dloading-extensions.html#Auto_002dloading-extensions" accesskey="u" rel="up">Auto-loading extensions</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="Which-flavor-to-choose_003f-1"></a>
  64. <h4 class="subsection">23.4.3 Which flavor to choose?</h4>
  65. <p>Given the multiple ways of auto-loading extensions, it might not always
  66. be clear which one to choose. This section provides some guidance.
  67. </p>
  68. <p>Benefits of the <samp>-gdb.<var>ext</var></samp> way:
  69. </p>
  70. <ul>
  71. <li> Can be used with file formats that don&rsquo;t support multiple sections.
  72. </li><li> Ease of finding scripts for public libraries.
  73. <p>Scripts specified in the <code>.debug_gdb_scripts</code> section are searched for
  74. in the source search path.
  75. For publicly installed libraries, e.g., <samp>libstdc++</samp>, there typically
  76. isn&rsquo;t a source directory in which to find the script.
  77. </p>
  78. </li><li> Doesn&rsquo;t require source code additions.
  79. </li></ul>
  80. <p>Benefits of the <code>.debug_gdb_scripts</code> way:
  81. </p>
  82. <ul>
  83. <li> Works with static linking.
  84. <p>Scripts for libraries done the <samp>-gdb.<var>ext</var></samp> way require an objfile to
  85. trigger their loading. When an application is statically linked the only
  86. objfile available is the executable, and it is cumbersome to attach all the
  87. scripts from all the input libraries to the executable&rsquo;s
  88. <samp>-gdb.<var>ext</var></samp> script.
  89. </p>
  90. </li><li> Works with classes that are entirely inlined.
  91. <p>Some classes can be entirely inlined, and thus there may not be an associated
  92. shared library to attach a <samp>-gdb.<var>ext</var></samp> script to.
  93. </p>
  94. </li><li> Scripts needn&rsquo;t be copied out of the source tree.
  95. <p>In some circumstances, apps can be built out of large collections of internal
  96. libraries, and the build infrastructure necessary to install the
  97. <samp>-gdb.<var>ext</var></samp> scripts in a place where <small>GDB</small> can find them is
  98. cumbersome. It may be easier to specify the scripts in the
  99. <code>.debug_gdb_scripts</code> section as relative paths, and add a path to the
  100. top of the source tree to the source search path.
  101. </p></li></ul>
  102. </body>
  103. </html>