Symbol-Table-Format.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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: Symbol Table Format</title>
  15. <meta name="description" content="STABS: Symbol Table Format">
  16. <meta name="keywords" content="STABS: Symbol Table Format">
  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="Symbol-Tables.html#Symbol-Tables" rel="up" title="Symbol Tables">
  25. <link href="Transformations-On-Symbol-Tables.html#Transformations-On-Symbol-Tables" rel="next" title="Transformations On Symbol Tables">
  26. <link href="Symbol-Tables.html#Symbol-Tables" rel="prev" title="Symbol Tables">
  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="Symbol-Table-Format"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Transformations-On-Symbol-Tables.html#Transformations-On-Symbol-Tables" accesskey="n" rel="next">Transformations On Symbol Tables</a>, Up: <a href="Symbol-Tables.html#Symbol-Tables" accesskey="u" rel="up">Symbol Tables</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="Symbol-Table-Format-1"></a>
  64. <h3 class="section">7.1 Symbol Table Format</h3>
  65. <p>Each time the assembler encounters a stab directive, it puts
  66. each field of the stab into a corresponding field in a symbol table
  67. entry of its output file. If the stab contains a string field, the
  68. symbol table entry for that stab points to a string table entry
  69. containing the string data from the stab. Assembler labels become
  70. relocatable addresses. Symbol table entries in a.out have the format:
  71. </p>
  72. <div class="example">
  73. <pre class="example">struct internal_nlist {
  74. unsigned long n_strx; /* index into string table of name */
  75. unsigned char n_type; /* type of symbol */
  76. unsigned char n_other; /* misc info (usually empty) */
  77. unsigned short n_desc; /* description field */
  78. bfd_vma n_value; /* value of symbol */
  79. };
  80. </pre></div>
  81. <p>If the stab has a string, the <code>n_strx</code> field holds the offset in
  82. bytes of the string within the string table. The string is terminated
  83. by a NUL character. If the stab lacks a string (for example, it was
  84. produced by a <code>.stabn</code> or <code>.stabd</code> directive), the
  85. <code>n_strx</code> field is zero.
  86. </p>
  87. <p>Symbol table entries with <code>n_type</code> field values greater than 0x1f
  88. originated as stabs generated by the compiler (with one random
  89. exception). The other entries were placed in the symbol table of the
  90. executable by the assembler or the linker.
  91. </p>
  92. </body>
  93. </html>