Multiple-Extension-Languages.html 4.4 KB

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