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.

101 line
4.5KB

  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>Flow (STABS)</title>
  16. <meta name="description" content="Flow (STABS)">
  17. <meta name="keywords" content="Flow (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="Overview.html#Overview" rel="up" title="Overview">
  25. <link href="Stabs-Format.html#Stabs-Format" rel="next" title="Stabs Format">
  26. <link href="Overview.html#Overview" rel="prev" title="Overview">
  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="Flow"></a>
  57. <div class="header">
  58. <p>
  59. Next: <a href="Stabs-Format.html#Stabs-Format" accesskey="n" rel="next">Stabs Format</a>, Up: <a href="Overview.html#Overview" accesskey="u" rel="up">Overview</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="Overview-of-Debugging-Information-Flow"></a>
  63. <h3 class="section">1.1 Overview of Debugging Information Flow</h3>
  64. <p>The GNU C compiler compiles C source in a <samp>.c</samp> file into assembly
  65. language in a <samp>.s</samp> file, which the assembler translates into
  66. a <samp>.o</samp> file, which the linker combines with other <samp>.o</samp> files and
  67. libraries to produce an executable file.
  68. </p>
  69. <p>With the &lsquo;<samp>-g</samp>&rsquo; option, GCC puts in the <samp>.s</samp> file additional
  70. debugging information, which is slightly transformed by the assembler
  71. and linker, and carried through into the final executable. This
  72. debugging information describes features of the source file like line
  73. numbers, the types and scopes of variables, and function names,
  74. parameters, and scopes.
  75. </p>
  76. <p>For some object file formats, the debugging information is encapsulated
  77. in assembler directives known collectively as <em>stab</em> (symbol table)
  78. directives, which are interspersed with the generated code. Stabs are
  79. the native format for debugging information in the a.out and XCOFF
  80. object file formats. The GNU tools can also emit stabs in the COFF and
  81. ECOFF object file formats.
  82. </p>
  83. <p>The assembler adds the information from stabs to the symbol information
  84. it places by default in the symbol table and the string table of the
  85. <samp>.o</samp> file it is building. The linker consolidates the <samp>.o</samp>
  86. files into one executable file, with one symbol table and one string
  87. table. Debuggers use the symbol and string tables in the executable as
  88. a source of debugging information about the program.
  89. </p>
  90. </body>
  91. </html>