cannot be considered definitive.
In the following table,
-DECL means the declaration coordinates \livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column},
-\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}, and \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}.
+\addtoindex{DECL}
+means
+\addtoindex{declaration coordinates}
+the
+\addtoindex{declaration coordinates|see {DW\_AT\_decl\_file,DW\_AT\_decl\_line, DW\_AT\_decl\_column}}
+declaration coordinates
+\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column},
+\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}, and
+\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}.
\label{tab:attributesbytag}
are represented by non-external variable entries.
\item A \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute,
+\addtoindexx{declaration attribute}
which is a \livelink{chap:flag}{flag} that
indicates whether this entry represents a non-defining
declaration of an object.
\item A \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} attribute, whose value describes the
location of a variable or parameter at run-time. In a variable
entry representing the definition of a variable (that is,
-with no \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute) if no location attribute
+\addtoindexx{declaration attribute}
+with no
+\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute)
+if no location attribute
is present, or if the location attribute is present but has
an empty location description (as described in Section 2.6),
the variable is assumed to exist in the source code but not
which is a \livelink{chap:flag}{flag}, if a
parameter entry represents an optional parameter.
-\item A \livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value} attribute for a formal parameter
+\item A \livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value} attribute
+\addtoindexx{default value attribute}
+for a formal parameter
\hypertarget{chap:DWATdefaultvaluedefaultvalueofparameter}
entry. The value of this attribute is a reference to the
debugging information entry for a variable or subroutine,
\end{figure}
For allocatable and pointer arrays, it is essentially required
-by the Fortran 90 semantics that each array consist of two
+by the Fortran 90 semantics that each array consist of
+\addtoindexx{descriptor!array}
+two
\addtoindexx{array!descriptor for}
parts, which we here call 1) the descriptor and 2) the raw
data. (A descriptor has often been called a dope vector in
\label{chap:thedebuggingentrydie}
DWARF
\addtoindexx{debugging information entry}
-uses a series of debugging information entries (DIEs) to
+uses
+\addtoindexx{DIE|see{debugging information entry}}
+a series of debugging information entries (DIEs) to
define a low-level
representation of a source program.
Each debugging information entry consists of an identifying
this section and not necessarily mentioned in all
contexts where they may be appropriate.
Examples include \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}, the declaration
-coordinates, and \livelink{chap:DWATdescription}{DW\-\_AT\-\_description}, among others.
+coordinates, and
+\livelink{chap:DWATdescription}{DW\-\_AT\-\_description}, among others.
The debugging information entries are contained
in the \addtoindex{.debug\_info} and
global variable x rather than of the local version.}
\subsection{Non-Defining Declarations}
-A debugging information entry that represents a non-defining or otherwise incomplete
-declaration of a program entity has a
+A debugging information entry that
+represents a non-defining or otherwise incomplete
+declaration of a program entity has
+\addtoindexx{declaration attribute}
+a
\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}
attribute, which is a
\livelink{chap:flag}{flag}.
\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute
apply to the referring debugging information entry.
-\textit{For example,
+\textit{For
+\addtoindexx{declaration attribute}
+example,
\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} and
\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}
+\addtoindexx{declaration attribute}
clearly cannot apply to a referring
entry.}
\section{Declaration Coordinates}
\label{chap:declarationcoordinates}
-\textit{It is sometimes useful in a debugger to be able to associate
+\textit{It is
+\addtoindexx{declaration coordinates}
+sometimes useful in a debugger to be able to associate
a declaration with its occurrence in the program source.
}
representing
\hypertarget{chap:DWATdeclcolumncolumnpositionofsourcedeclaration}
the
-declaration of an object, module, subprogram or type may have
-\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}, \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} and \livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column}
+declaration of an object, module, subprogram or
+\addtoindex{declaration column attribute}
+type
+\addtoindex{declaration file attribute}
+may
+\addtoindex{declaration line attribute}
+have
+\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file},
+\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} and
+\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column}
attributes each of whose value is an unsigned integer constant.
-The value of the \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} attribute corresponds to
+The value of
+\addtoindex{declaration file attribute}
+the
+\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}
+attribute corresponds to
a file number from the line number information table for the
compilation unit containing the debugging information entry and
represents the source file in which the declaration appeared
The value 0 indicates that no source file
has been specified.
-The value of the \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} attribute represents
+The value of
+\addtoindex{declaration line attribute}
+the \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} attribute represents
the source line number at which the first character of
the identifier of the declared object appears. The value 0
indicates that no source line has been specified.
-The value of the \livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column} attribute represents
+The value of
+\addtoindex{declaration column attribute}
+the \livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column} attribute represents
the source column number at which the first character of
the identifier of the declared object appears. The value 0
indicates that no column has been specified.
\hypertarget{chap:DWATdescriptionartificialnameordescription}
has, or may have, a
\livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, may
-also have a
+also have
+\addtoindexx{description attribute}
+a
\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} attribute whose value is a
null-terminated string providing a description of the entity.
file & 1 \\
line & 1 \\
column & 0 \\
-is\_stmt & determined by default\_is\_stmt in the line number program header \\
+is\_stmt & determined by \addtoindex{default\_is\_stmt} in the line number program header \\
basic\_block & ``false'' \addtoindexx{basic block} \\
end\_sequence & ``false'' \\
prologue\_end & ``false'' \\
0, and the operation pointer is simply the address register.
\item default\_is\_stmt (ubyte) \\
+\addtoindexx{default\_is\_stmt}
The initial value of the is\_stmt register.
\textit{A simple approach
\textit{Several languages have the concept of a ``module.''
\addtoindexx{Modula-2}
A Modula\dash 2 definition module may be represented by a module
-entry containing a declaration attribute (\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}). A
+entry containing a
+\addtoindex{declaration attribute}
+(\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}). A
\addtoindex{Fortran 90} module may also be represented by a module entry
(but no declaration attribute is warranted because \addtoindex{Fortran}
has no concept of a corresponding module body).}
\textit{In \addtoindex{C++}, if a function or a constructor declared with constexpr
is called with constant expressions, then the corresponding
-concrete inlined instance has a \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} attribute,
+concrete inlined instance has a
+\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} attribute,
as well as a \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} attribute whose value represents
the actual return value of the concrete inlined instance.}
associated abstract instance entry.
If an entry within a concrete inlined instance tree contains
-attributes describing the declaration coordinates of that
+attributes describing the
+\addtoindexx{declaration coordinates!in concrete instance}
+declaration coordinates
+of that
entry, then those attributes should refer to the file, line
and column of the original declaration of the subroutine,
not to the point at which it was inlined. As a consequence,
including any padding. An incomplete structure, union or
class type is represented by a structure, union or class
entry that does not have a byte size attribute and that has
+\addtoindexx{declaration attribute}
a \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute.
If the complete declaration of a type has been placed in
\subsection{Derived or Extended Structs, Classes and Interfaces}
\label{chap:derivedorextendedstructsclasesandinterfaces}
-\textit{In \addtoindex{C++}, a class (or struct) may be ``derived from'' or be a
+\textit{In \addtoindex{C++}, a class (or struct)
+may
+\addtoindexx{derived type (C++)|see{inheritance entry}}
+be ``derived from'' or be a
``subclass of'' another class. In Java, an interface may ``extend''
one or more other interfaces, and a class may ``extend'' another
class and/or ``implement'' one or more interfaces. All of these