hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU Assembler "as".
 
Copyright (C) 1991-2021 Free Software Foundation, Inc.
 
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled "GNU Free Documentation License".
 -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: File</title>
 
<meta name="description" content="Using as: File">
<meta name="keywords" content="Using as: File">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Pseudo-Ops.html#Pseudo-Ops" rel="up" title="Pseudo Ops">
<link href="Fill.html#Fill" rel="next" title="Fill">
<link href="Fail.html#Fail" rel="previous" title="Fail">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
 
 
</head>
 
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="File"></a>
<div class="header">
<p>
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>
</div>
<hr>
<a name="g_t_002efile"></a>
<h3 class="section">7.36 <code>.file</code></h3>
<a name="index-file-directive"></a>
 
<p>There are two different versions of the <code>.file</code> directive.  Targets
that support DWARF2 line number information use the DWARF2 version of
<code>.file</code>.  Other targets use the default version.
</p>
<a name="Default-Version"></a>
<h4 class="subheading">Default Version</h4>
 
<a name="index-logical-file-name"></a>
<a name="index-file-name_002c-logical"></a>
<p>This version of the <code>.file</code> directive tells <code>as</code> that we
are about to start a new logical file.  The syntax is:
</p>
<div class="smallexample">
<pre class="smallexample">.file <var>string</var>
</pre></div>
 
<p><var>string</var> is the new file name.  In general, the filename is
recognized whether or not it is surrounded by quotes &lsquo;<samp>&quot;</samp>&rsquo;; but if you wish
to specify an empty file name, you must give the quotes&ndash;<code>&quot;&quot;</code>.  This
statement may go away in future: it is only recognized to be compatible with
old <code>as</code> programs.
</p>
<a name="DWARF2-Version"></a>
<h4 class="subheading">DWARF2 Version</h4>
 
<p>When emitting DWARF2 line number information, <code>.file</code> assigns filenames
to the <code>.debug_line</code> file name table.  The syntax is:
</p>
<div class="smallexample">
<pre class="smallexample">.file <var>fileno</var> <var>filename</var>
</pre></div>
 
<p>The <var>fileno</var> operand should be a unique positive integer to use as the
index of the entry in the table.  The <var>filename</var> operand is a C string
literal enclosed in double quotes.  The <var>filename</var> can include directory
elements.  If it does, then the directory will be added to the directory table
and the basename will be added to the file table.
</p>
<p>The detail of filename indices is exposed to the user because the filename
table is shared with the <code>.debug_info</code> section of the DWARF2 debugging
information, and thus the user must know the exact indices that table
entries will have.
</p>
<p>If DWARF-5 support has been enabled via the <samp>-gdwarf-5</samp> option then
an extended version of the <code>file</code> is also allowed:
</p>
<div class="smallexample">
<pre class="smallexample">.file <var>fileno</var> [<var>dirname</var>] <var>filename</var> [md5 <var>value</var>]
</pre></div>
 
<p>With this version a separate directory name is allowed, although if this is
used then <var>filename</var> should not contain any directory components.  In
addtion an md5 hash value of the contents of <var>filename</var> can be provided.
This will be stored in the the file table as well, and can be used by tools
reading the debug information to verify that the contents of the source file
match the contents of the compiled file.
</p>
<hr>
<div class="header">
<p>
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>
</div>
 
 
 
</body>
</html>