Cross_002dReferences.html 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1992-2019 Free Software Foundation, Inc.
  4. Contributed by Cygnus Support. Written by Julia Menapace, Jim Kingdon,
  5. and David MacKenzie.
  6. Permission is granted to copy, distribute and/or modify this document
  7. under the terms of the GNU Free Documentation License, Version 1.3 or
  8. any later version published by the Free Software Foundation; with no
  9. Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
  10. Texts. A copy of the license is included in the section entitled "GNU
  11. Free Documentation License". -->
  12. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  13. <head>
  14. <title>STABS: Cross-References</title>
  15. <meta name="description" content="STABS: Cross-References">
  16. <meta name="keywords" content="STABS: Cross-References">
  17. <meta name="resource-type" content="document">
  18. <meta name="distribution" content="global">
  19. <meta name="Generator" content="makeinfo">
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  21. <link href="index.html#Top" rel="start" title="Top">
  22. <link href="Symbol-Types-Index.html#Symbol-Types-Index" rel="index" title="Symbol Types Index">
  23. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  24. <link href="Types.html#Types" rel="up" title="Types">
  25. <link href="Subranges.html#Subranges" rel="next" title="Subranges">
  26. <link href="Miscellaneous-Types.html#Miscellaneous-Types" rel="prev" title="Miscellaneous Types">
  27. <style type="text/css">
  28. <!--
  29. a.summary-letter {text-decoration: none}
  30. blockquote.smallquotation {font-size: smaller}
  31. div.display {margin-left: 3.2em}
  32. div.example {margin-left: 3.2em}
  33. div.indentedblock {margin-left: 3.2em}
  34. div.lisp {margin-left: 3.2em}
  35. div.smalldisplay {margin-left: 3.2em}
  36. div.smallexample {margin-left: 3.2em}
  37. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  38. div.smalllisp {margin-left: 3.2em}
  39. kbd {font-style:oblique}
  40. pre.display {font-family: inherit}
  41. pre.format {font-family: inherit}
  42. pre.menu-comment {font-family: serif}
  43. pre.menu-preformatted {font-family: serif}
  44. pre.smalldisplay {font-family: inherit; font-size: smaller}
  45. pre.smallexample {font-size: smaller}
  46. pre.smallformat {font-family: inherit; font-size: smaller}
  47. pre.smalllisp {font-size: smaller}
  48. span.nocodebreak {white-space:nowrap}
  49. span.nolinebreak {white-space:nowrap}
  50. span.roman {font-family:serif; 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" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  57. <a name="Cross_002dReferences"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Subranges.html#Subranges" accesskey="n" rel="next">Subranges</a>, Previous: <a href="Miscellaneous-Types.html#Miscellaneous-Types" accesskey="p" rel="prev">Miscellaneous Types</a>, Up: <a href="Types.html#Types" accesskey="u" rel="up">Types</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Symbol-Types-Index.html#Symbol-Types-Index" title="Index" rel="index">Index</a>]</p>
  61. </div>
  62. <hr>
  63. <a name="Cross_002dReferences-to-Other-Types"></a>
  64. <h3 class="section">5.3 Cross-References to Other Types</h3>
  65. <p>A type can be used before it is defined; one common way to deal with
  66. that situation is just to use a type reference to a type which has not
  67. yet been defined.
  68. </p>
  69. <p>Another way is with the &lsquo;<samp>x</samp>&rsquo; type descriptor, which is followed by
  70. &lsquo;<samp>s</samp>&rsquo; for a structure tag, &lsquo;<samp>u</samp>&rsquo; for a union tag, or &lsquo;<samp>e</samp>&rsquo; for
  71. a enumerator tag, followed by the name of the tag, followed by &lsquo;<samp>:</samp>&rsquo;.
  72. If the name contains &lsquo;<samp>::</samp>&rsquo; between a &lsquo;<samp>&lt;</samp>&rsquo; and &lsquo;<samp>&gt;</samp>&rsquo; pair (for
  73. C<tt>++</tt> templates), such a &lsquo;<samp>::</samp>&rsquo; does not end the name&mdash;only a single
  74. &lsquo;<samp>:</samp>&rsquo; ends the name; see <a href="Nested-Symbols.html#Nested-Symbols">Nested Symbols</a>.
  75. </p>
  76. <p>For example, the following C declarations:
  77. </p>
  78. <div class="example">
  79. <pre class="example">struct foo;
  80. struct foo *bar;
  81. </pre></div>
  82. <p>produce:
  83. </p>
  84. <div class="example">
  85. <pre class="example">.stabs &quot;bar:G16=*17=xsfoo:&quot;,32,0,0,0
  86. </pre></div>
  87. <p>Not all debuggers support the &lsquo;<samp>x</samp>&rsquo; type descriptor, so on some
  88. machines GCC does not use it. I believe that for the above example it
  89. would just emit a reference to type 17 and never define it, but I
  90. haven&rsquo;t verified that.
  91. </p>
  92. <p>Modula-2 imported types, at least on AIX, use the &lsquo;<samp>i</samp>&rsquo; type
  93. descriptor, which is followed by the name of the module from which the
  94. type is imported, followed by &lsquo;<samp>:</samp>&rsquo;, followed by the name of the
  95. type. There is then optionally a comma followed by type information for
  96. the type. This differs from merely naming the type (see <a href="Typedefs.html#Typedefs">Typedefs</a>) in
  97. that it identifies the module; I don&rsquo;t understand whether the name of
  98. the type given here is always just the same as the name we are giving
  99. it, or whether this type descriptor is used with a nameless stab
  100. (see <a href="String-Field.html#String-Field">String Field</a>), or what. The symbol ends with &lsquo;<samp>;</samp>&rsquo;.
  101. </p>
  102. <hr>
  103. <div class="header">
  104. <p>
  105. Next: <a href="Subranges.html#Subranges" accesskey="n" rel="next">Subranges</a>, Previous: <a href="Miscellaneous-Types.html#Miscellaneous-Types" accesskey="p" rel="prev">Miscellaneous Types</a>, Up: <a href="Types.html#Types" accesskey="u" rel="up">Types</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Symbol-Types-Index.html#Symbol-Types-Index" title="Index" rel="index">Index</a>]</p>
  106. </div>
  107. </body>
  108. </html>