There are two different versions of the
.file directive. Targets that support DWARF2 line number information use the DWARF2 version of
.file. Other targets use the default version.
This version of the
.file directive tells
as that we are about to start a new logical file. The syntax is:
string is the new file name. In general, the filename is recognized whether or not it is surrounded by quotes ‘"’; but if you wish to specify an empty file name, you must give the quotes–
"". This statement may go away in future: it is only recognized to be compatible with old
When emitting DWARF2 line number information,
.file assigns filenames to the
.debug_line file name table. The syntax is:
.file fileno filename
The fileno operand should be a unique positive integer to use as the index of the entry in the table. The filename operand is a C string literal.
The detail of filename indices is exposed to the user because the filename table is shared with the
.debug_info section of the DWARF2 debugging information, and thus the user must know the exact indices that table entries will have.