File.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- This file documents the GNU Assembler "as".
  4. Copyright (C) 1991-2020 Free Software Foundation, Inc.
  5. Permission is granted to copy, distribute and/or modify this document
  6. under the terms of the GNU Free Documentation License, Version 1.3
  7. or any later version published by the Free Software Foundation;
  8. with no Invariant Sections, with no Front-Cover Texts, and with no
  9. Back-Cover Texts. A copy of the license is included in the
  10. section entitled "GNU Free Documentation License".
  11. -->
  12. <!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
  13. <head>
  14. <title>Using as: File</title>
  15. <meta name="description" content="Using as: File">
  16. <meta name="keywords" content="Using as: File">
  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="AS-Index.html#AS-Index" rel="index" title="AS Index">
  23. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  24. <link href="Pseudo-Ops.html#Pseudo-Ops" rel="up" title="Pseudo Ops">
  25. <link href="Fill.html#Fill" rel="next" title="Fill">
  26. <link href="Fail.html#Fail" rel="previous" title="Fail">
  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="File"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Fill.html#Fill" accesskey="n" rel="next">Fill</a>, Previous: <a href="Fail.html#Fail" accesskey="p" rel="previous">Fail</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
  61. </div>
  62. <hr>
  63. <a name="g_t_002efile"></a>
  64. <h3 class="section">7.35 <code>.file</code></h3>
  65. <a name="index-file-directive"></a>
  66. <p>There are two different versions of the <code>.file</code> directive. Targets
  67. that support DWARF2 line number information use the DWARF2 version of
  68. <code>.file</code>. Other targets use the default version.
  69. </p>
  70. <a name="Default-Version"></a>
  71. <h4 class="subheading">Default Version</h4>
  72. <a name="index-logical-file-name"></a>
  73. <a name="index-file-name_002c-logical"></a>
  74. <p>This version of the <code>.file</code> directive tells <code>as</code> that we
  75. are about to start a new logical file. The syntax is:
  76. </p>
  77. <div class="smallexample">
  78. <pre class="smallexample">.file <var>string</var>
  79. </pre></div>
  80. <p><var>string</var> is the new file name. In general, the filename is
  81. recognized whether or not it is surrounded by quotes &lsquo;<samp>&quot;</samp>&rsquo;; but if you wish
  82. to specify an empty file name, you must give the quotes&ndash;<code>&quot;&quot;</code>. This
  83. statement may go away in future: it is only recognized to be compatible with
  84. old <code>as</code> programs.
  85. </p>
  86. <a name="DWARF2-Version"></a>
  87. <h4 class="subheading">DWARF2 Version</h4>
  88. <p>When emitting DWARF2 line number information, <code>.file</code> assigns filenames
  89. to the <code>.debug_line</code> file name table. The syntax is:
  90. </p>
  91. <div class="smallexample">
  92. <pre class="smallexample">.file <var>fileno</var> <var>filename</var>
  93. </pre></div>
  94. <p>The <var>fileno</var> operand should be a unique positive integer to use as the
  95. index of the entry in the table. The <var>filename</var> operand is a C string
  96. literal enclosed in double quotes. The <var>filename</var> can include directory
  97. elements. If it does, then the directory will be added to the directory table
  98. and the basename will be added to the file table.
  99. </p>
  100. <p>The detail of filename indices is exposed to the user because the filename
  101. table is shared with the <code>.debug_info</code> section of the DWARF2 debugging
  102. information, and thus the user must know the exact indices that table
  103. entries will have.
  104. </p>
  105. <p>If DWARF-5 support has been enabled via the <samp>-gdwarf-5</samp> option then
  106. an extended version of the <code>file</code> is also allowed:
  107. </p>
  108. <div class="smallexample">
  109. <pre class="smallexample">.file <var>fileno</var> [<var>dirname</var>] <var>filename</var> [md5 <var>value</var>]
  110. </pre></div>
  111. <p>With this version a separate directory name is allowed, although if this is
  112. used then <var>filename</var> should not contain any directory components. In
  113. addtion an md5 hash value of the contents of <var>filename</var> can be provided.
  114. This will be stored in the the file table as well, and can be used by tools
  115. reading the debug information to verify that the contents of the source file
  116. match the contents of the compiled file.
  117. </p>
  118. <hr>
  119. <div class="header">
  120. <p>
  121. Next: <a href="Fill.html#Fill" accesskey="n" rel="next">Fill</a>, Previous: <a href="Fail.html#Fail" accesskey="p" rel="previous">Fail</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
  122. </div>
  123. </body>
  124. </html>