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.

105 lines
4.9KB

  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-2020 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 6.5, http://www.gnu.org/software/texinfo/ -->
  13. <head>
  14. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  15. <title>Block Structure (STABS)</title>
  16. <meta name="description" content="Block Structure (STABS)">
  17. <meta name="keywords" content="Block Structure (STABS)">
  18. <meta name="resource-type" content="document">
  19. <meta name="distribution" content="global">
  20. <meta name="Generator" content="makeinfo">
  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="Program-Structure.html#Program-Structure" rel="up" title="Program Structure">
  25. <link href="Alternate-Entry-Points.html#Alternate-Entry-Points" rel="next" title="Alternate Entry Points">
  26. <link href="Nested-Procedures.html#Nested-Procedures" rel="prev" title="Nested Procedures">
  27. <style type="text/css">
  28. <!--
  29. a.summary-letter {text-decoration: none}
  30. blockquote.indentedblock {margin-right: 0em}
  31. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  32. blockquote.smallquotation {font-size: smaller}
  33. div.display {margin-left: 3.2em}
  34. div.example {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.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.nolinebreak {white-space: nowrap}
  49. span.roman {font-family: initial; font-weight: normal}
  50. span.sansserif {font-family: sans-serif; font-weight: normal}
  51. ul.no-bullet {list-style: none}
  52. -->
  53. </style>
  54. </head>
  55. <body lang="en">
  56. <a name="Block-Structure"></a>
  57. <div class="header">
  58. <p>
  59. Next: <a href="Alternate-Entry-Points.html#Alternate-Entry-Points" accesskey="n" rel="next">Alternate Entry Points</a>, Previous: <a href="Nested-Procedures.html#Nested-Procedures" accesskey="p" rel="prev">Nested Procedures</a>, Up: <a href="Program-Structure.html#Program-Structure" accesskey="u" rel="up">Program Structure</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>
  60. </div>
  61. <hr>
  62. <a name="Block-Structure-1"></a>
  63. <h3 class="section">2.7 Block Structure</h3>
  64. <a name="index-N_005fLBRAC"></a>
  65. <a name="index-N_005fRBRAC"></a>
  66. <p>The program&rsquo;s block structure is represented by the <code>N_LBRAC</code> (left
  67. brace) and the <code>N_RBRAC</code> (right brace) stab types. The variables
  68. defined inside a block precede the <code>N_LBRAC</code> symbol for most
  69. compilers, including GCC. Other compilers, such as the Convex, Acorn
  70. RISC machine, and Sun <code>acc</code> compilers, put the variables after the
  71. <code>N_LBRAC</code> symbol. The values of the <code>N_LBRAC</code> and
  72. <code>N_RBRAC</code> symbols are the start and end addresses of the code of
  73. the block, respectively. For most machines, they are relative to the
  74. starting address of this source file. For the Gould NP1, they are
  75. absolute. For stabs in sections (see <a href="Stab-Sections.html#Stab-Sections">Stab Sections</a>), they are
  76. relative to the function in which they occur.
  77. </p>
  78. <p>The <code>N_LBRAC</code> and <code>N_RBRAC</code> stabs that describe the block
  79. scope of a procedure are located after the <code>N_FUN</code> stab that
  80. represents the procedure itself.
  81. </p>
  82. <p>Sun documents the desc field of <code>N_LBRAC</code> and
  83. <code>N_RBRAC</code> symbols as containing the nesting level of the block.
  84. However, dbx seems to not care, and GCC always sets desc to
  85. zero.
  86. </p>
  87. <a name="index-_002ebb"></a>
  88. <a name="index-_002ebe"></a>
  89. <a name="index-C_005fBLOCK"></a>
  90. <p>For XCOFF, block scope is indicated with <code>C_BLOCK</code> symbols. If the
  91. name of the symbol is &lsquo;<samp>.bb</samp>&rsquo;, then it is the beginning of the block;
  92. if the name of the symbol is &lsquo;<samp>.be</samp>&rsquo;; it is the end of the block.
  93. </p>
  94. </body>
  95. </html>