&\livelink{chap:DWATexternalexternalsubroutine}{External subroutine} \\
&\livelink{chap:DWATexternalexternalvariable}{External variable} \\
\livetarg{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}
-&Subroutine frame base address\\
+&\livelink{chap:DWATframebasesubroutineframebaseaddress}{Subroutine frame base address} \\
\livetarg{chap:DWATfriend}{DW\-\_AT\-\_friend}
-&Friend relationship\\
+&\livelink{chap:DWATfriendfriendrelationship}{Friend relationship} \\
\livetarg{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}
-&Contiguous range of code addresses\\
+&\livelink{chap:DWAThighpccontinguousrangeofcodeaddresses}{Contiguous range of code addresses} \\
\livetarg{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}
-&Identifier case rule \\
+&\livelink{chap:DWATidentifiercaseidentifiercaserule}{Identifier case rule} \\
\livetarg{chap:DWATimport}{DW\-\_AT\-\_import}
-&Imported declaration \\
-&Imported unit \\
-&Namespace alias \\
-&Namespace using declaration \\
-&Namespace using directive \\
+&\livelink{chap:DWATimportimporteddeclaration}{Imported declaration} \\
+&\livelink{chap:DWATimportimportedunit}{Imported unit} \\
+&\livelink{chap:DWATimportnamespacealias}{Namespace alias} \\
+&\livelink{chap:DWATimportnamespaceusingdeclaration}{Namespace using declaration} \\
+&\livelink{chap:DWATimportnamespaceusingdirective}{Namespace using directive} \\
\livetarg{chap:DWATinline}{DW\-\_AT\-\_inline}
-&Abstract instance\\
-&Inlined subroutine\\
+&\livelink{chap:DWATinlineabstracttinstance}{Abstract instance} \\
+&\livelink{chap:DWATinlineinlinedsubroutine}{Inlined subroutine} \\
\livetarg{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}
-&Optional parameter\\
+&\livelink{chap:DWATisoptionaloptionalparameter}{Optional parameter} \\
\livetarg{chap:DWATlanguage}{DW\-\_AT\-\_language}
-&Programming language\\
+&\livelink{chap:DWATlanguageprogramminglanguage}{Programming language} \\
\livetarg{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name}
-&Object file linkage name of an entity\\
+&\livelink{chap:DWATlinkagenameobjectfilelinkagenameofanentity}{Object file linkage name of an entity}\\
\livetarg{chap:DWATlocation}{DW\-\_AT\-\_location}
-&Data object location\\
+&\livelink{chap:DWATlocationdataobjectlocation}{Data object location}\\
\livetarg{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}
-&Code address or range of addresses\\
+&\livelink{chap:DWATlowpccodeaddressorrangeofaddresses}{Code address or range of addresses}\\
\livetarg{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}
-&Lower bound of subrange\\
+&\livelink{chap:DWATlowerboundlowerboundofsubrange}{Lower bound of subrange} \\
\livetarg{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info}
&\livelink{chap:DWATmacroinfomacroinformation}{Macro information} (\#define, \#undef)\\
\livetarg{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram}
\section{Data Locations and DWARF Procedures}
Any debugging information entry describing a data object (which
-includes variables and parameters) or common \livelink{chap:commonblockentry}{block} may have a
+\hypertarget{chap:DWATlocationdataobjectlocation}
+includes variables and parameters) or
+common \livelink{chap:commonblockentry}{block}
+may have a
\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} attribute, whose value is a location description
(see Section 2.6).
\hypertarget{chap:DWATrangesnoncontiguousrangeofcodeaddresses}
subroutines, ordinary \livelink{chap:lexicalblock}{block},
try/catch \nolink{blocks} (see Section\refersec{chap:tryandcatchblockentries}),
-labels and
+labels
+\hypertarget{chap:DWATlowpccodeaddressorrangeofaddresses}
+and
+\hypertarget{chap:DWAThighpccontinguousrangeofcodeaddresses}
the like, may have
\begin{itemize}
for a producer to include this name in the DWARF description
of the program to facilitate consumer access to and use of
object file information about an entity and/or information
+\hypertarget{chap:DWATlinkagenameobjectfilelinkagenameofanentity}
that is encoded in the linkage name itself.
}
% Some trouble maybe with hbox full, so we try optional word breaks.
A debugging
-information entry may have a \livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} attribute
+information entry may have a
+\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name}
+attribute
whose value is a null-terminated string describing the object
file linkage name associated with the corresponding entity.
Section \refersec{chap:importedunitentries}).
-Compilation unit entries may have the following attributes:
+Compilation unit entries may have the following
+attributes:
\begin{enumerate}[1]
\item Either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of
source file from which the compilation unit was derived.
\item A \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language} attribute whose constant value is an
+\hypertarget{chap:DWATlanguageprogramminglanguage}
integer code indicating the source language of the compilation
unit. The set of language names and their meanings are given
in
with other producer values.
-\item A \livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case} attribute whose integer
+\item A \livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}
+attribute whose integer
+\hypertarget{chap:DWATidentifiercaseidentifiercaserule}
constant value is a code describing the treatment
of identifiers within this compilation unit. The
set of identifier case codes is given in Figure
\subsection{Imported Unit Entries}
\label{chap:importedunitentries}
-The place where a normal or partial unit is imported is
+The
+\hypertarget{chap:DWATimportimportedunit}
+place where a normal or partial unit is imported is
represented by a debugging information entry with the
tag \livetarg{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}.
An imported unit entry contains a
An imported declaration is represented by one or
more debugging information entries with the
tag \livetarg{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration}.
-When an overloaded entity
+When
+\hypertarget{chap:DWATimportimporteddeclaration}
+an overloaded entity
is imported, there is one imported declaration entry for
each overloading. Each imported declaration entry has a
\livelink{chap:DWATimport}{DW\-\_AT\-\_import} attribute, whose value is a reference to the
debugging information entry representing the declaration that
is being imported.
-An imported declaration may also have a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute
+An imported declaration may also have a
+\livelink{chap:DWATname}{DW\-\_AT\-\_name}
+attribute
whose value is a null\dash terminated string containing the
name, as it appears in the source program, by which the
imported entity is to be known in the context of the imported
declaration or the imported entity occurs.
\textit{A C++ namespace alias may be represented by an imported
+\hypertarget{chap:DWATimportnamespacealias}
declaration entry with a name attribute whose value is
a null\dash terminated string containing the alias name as it
appears in the source program and an import attribute whose
}
\textit{A C++ using declaration may be represented by one or more
+\hypertarget{chap:DWATimportnamespaceusingdeclaration}
imported declaration entries. When the using declaration
refers to an overloaded function, there is one imported
declaration entry corresponding to each overloading. Each
module entry by the same name as it is declared in the module.
\textit{A C++ using directive may be represented by an imported module
+\hypertarget{chap:DWATimportnamespaceusingdirective}
entry, with an import attribute referring to the namespace
entry of the appropriate extension of the namespace (which
might be the original namespace entry) and no owned entries.
calculated is the place where the return address for the
subroutine or entry point is stored.
-A subroutine or entry point entry may also have a
+A
+\hypertarget{chap:DWATframebasesubroutineframebaseaddress}
+subroutine or entry point entry may also have a
\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base} attribute, whose value is a location
description that computes the “frame base” for the
subroutine or entry point. If the location description is
\subsection{Inlinable and Inlined Subroutines}
A declaration or a definition of an inlinable subroutine
is represented by a debugging information entry with the
-tag \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}. The entry for a subroutine that is
+tag
+\livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}.
+The entry for a subroutine that is
+\hypertarget{chap:DWATinlineinlinedsubroutine}
explicitly declared to be available for inline expansion or
that was expanded inline implicitly by the compiler has a
\livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute whose value is an integer constant. The
\paragraph{Abstract Instances}
\label{chap:abstractinstances}
Any debugging information entry that is owned (either
+\hypertarget{chap:DWATinlineabstracttinstance}
directly or indirectly) by a debugging information entry
-that contains the \livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute is referred to
+that contains the
+\livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute is referred to
as an ``abstract instance entry.'' Any subroutine entry
that contains a \livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute whose value is other
than \livelink{chap:DWINLnotinlined}{DW\-\_INL\-\_not\-\_inlined} is known as