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.

Multiple-Extension-Languages.html 4.3KB

3 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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>Multiple Extension Languages (Debugging with GDB)</title>
  17. <meta name="description" content="Multiple Extension Languages (Debugging with GDB)">
  18. <meta name="keywords" content="Multiple Extension Languages (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="Extending-GDB.html#Extending-GDB" rel="up" title="Extending GDB">
  26. <link href="Aliases.html#Aliases" rel="next" title="Aliases">
  27. <link href="Which-flavor-to-choose_003f.html#Which-flavor-to-choose_003f" rel="prev" title="Which flavor to choose?">
  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="Multiple-Extension-Languages"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Aliases.html#Aliases" accesskey="n" rel="next">Aliases</a>, Previous: <a href="Auto_002dloading-extensions.html#Auto_002dloading-extensions" accesskey="p" rel="prev">Auto-loading extensions</a>, Up: <a href="Extending-GDB.html#Extending-GDB" accesskey="u" rel="up">Extending GDB</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="Multiple-Extension-Languages-1"></a>
  64. <h3 class="section">23.5 Multiple Extension Languages</h3>
  65. <p>The Guile and Python extension languages do not share any state,
  66. and generally do not interfere with each other.
  67. There are some things to be aware of, however.
  68. </p>
  69. <a name="Python-comes-first"></a>
  70. <h4 class="subsection">23.5.1 Python comes first</h4>
  71. <p>Python was <small>GDB</small>&rsquo;s first extension language, and to avoid breaking
  72. existing behaviour Python comes first. This is generally solved by the
  73. &ldquo;first one wins&rdquo; principle. <small>GDB</small> maintains a list of enabled
  74. extension languages, and when it makes a call to an extension language,
  75. (say to pretty-print a value), it tries each in turn until an extension
  76. language indicates it has performed the request (e.g., has returned the
  77. pretty-printed form of a value).
  78. This extends to errors while performing such requests: If an error happens
  79. while, for example, trying to pretty-print an object then the error is
  80. reported and any following extension languages are not tried.
  81. </p>
  82. </body>
  83. </html>