Index v and other stuff
authorRon Brender <ron.brender@gmail.com>
Wed, 24 Oct 2012 14:33:07 +0000 (10:33 -0400)
committerRon Brender <ron.brender@gmail.com>
Wed, 24 Oct 2012 14:33:07 +0000 (10:33 -0400)
dwarf5/READMEindexing
dwarf5/latexdoc/dataobject.tex
dwarf5/latexdoc/datarepresentation.tex
dwarf5/latexdoc/dwarf5.tex
dwarf5/latexdoc/encodingdecoding.tex
dwarf5/latexdoc/generaldescription.tex
dwarf5/latexdoc/otherdebugginginformation.tex
dwarf5/latexdoc/programscope.tex
dwarf5/latexdoc/sectionversionnumbers.tex
dwarf5/latexdoc/typeentries.tex

index dfa45ba..4870832 100644 (file)
@@ -17,7 +17,7 @@ Of course the command also indexes the link.
 The actual command definitions in dwarf5.tex are:
 \newcommand{\addtoindex}[1]{#1\index{#1}}
 \newcommand{\addtoindexi}[2]{#1\index{#2}}
 The actual command definitions in dwarf5.tex are:
 \newcommand{\addtoindex}[1]{#1\index{#1}}
 \newcommand{\addtoindexi}[2]{#1\index{#2}}
-\newcommand{\addtoindexx}[1]{\index{#2}}
+\newcommand{\addtoindexx}[1]{\index{#1}}
 \newcommand{\noindex}[1]{#1}
 
 Where a word or phrase is to be indexed.
 \newcommand{\noindex}[1]{#1}
 
 Where a word or phrase is to be indexed.
index 9f62de5..f5122f1 100644 (file)
@@ -9,13 +9,13 @@ a common \livelink{chap:commonblockentry}{block}.
 
 \section{Data Object Entries}
 \label{chap:dataobjectentries}
 
 \section{Data Object Entries}
 \label{chap:dataobjectentries}
-
+\addtoindexx{data object entries}
 
 Program variables, formal parameters and constants are
 represented by debugging information entries with the tags
 
 Program variables, formal parameters and constants are
 represented by debugging information entries with the tags
-\livetarg{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}, 
-\livetarg{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} and 
-\livetarg{chap:DWTAGconstant}{DW\-\_TAG\-\_constant},
+\livetarg{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}\addtoindexx{variable entry}
+\livetarg{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}\addtoindexx{formal parameter entry} and 
+\livetarg{chap:DWTAGconstant}{DW\-\_TAG\-\_constant}\addtoindexx{constant (data) entry},
 respectively.
 
 \textit{The tag \livelink{chap:DWTAGconstant}{DW\-\_TAG\-\_constant} is used for languages that
 respectively.
 
 \textit{The tag \livelink{chap:DWTAGconstant}{DW\-\_TAG\-\_constant} is used for languages that
@@ -88,7 +88,8 @@ type of the data member whose definition they
 \hypertarget{chap:DWATvariableparameternonconstantparameterflag}
 represent.
 
 \hypertarget{chap:DWATvariableparameternonconstantparameterflag}
 represent.
 
-\item A \livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter} attribute, 
+\item A \livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}
+attribute\addtoindexx{variable parameter attribute}, 
 which is a \livelink{chap:flag}{flag},
 if a formal parameter entry represents a parameter whose
 value in the calling function may be modified by the callee..
 which is a \livelink{chap:flag}{flag},
 if a formal parameter entry represents a parameter whose
 value in the calling function may be modified by the callee..
index 0b3d38c..7866e47 100644 (file)
@@ -8,6 +8,8 @@ and of other fundamental elements described above.
 
 \section{Vendor Extensibility}
 \label{datarep:vendorextensibility}
 
 \section{Vendor Extensibility}
 \label{datarep:vendorextensibility}
+\addtoindexx{vendor extensibility}
+\addtoindexx{vendor specific extensions|see{vendor extensibility}}
 
 To reserve a portion of the DWARF name space and ranges of
 enumeration values for use for vendor specific extensions,
 
 To reserve a portion of the DWARF name space and ranges of
 enumeration values for use for vendor specific extensions,
@@ -24,7 +26,7 @@ DW\-\_LANG, DW\-\_LNE, DW\-\_CC or DW\-\_CFA respectively) followed by
 labels are \livetarg{chap:DWTAGlouser}{DW\-\_TAG\-\_lo\-\_user} and 
 \livetarg{chap:DWTAGhiuser}{DW\-\_TAG\-\_hi\-\_user}.}
 Values in the
 labels are \livetarg{chap:DWTAGlouser}{DW\-\_TAG\-\_lo\-\_user} and 
 \livetarg{chap:DWTAGhiuser}{DW\-\_TAG\-\_hi\-\_user}.}
 Values in the
-range between prefix\_lo\_user and prefix\_hi\_user inclusive,
+range between \textit{prefix}\_lo\_user and \textit{prefix}\_hi\_user inclusive,
 are reserved for vendor specific extensions. Vendors may
 use values in this range without conflicting with current or
 future system\dash defined values. All other values are reserved
 are reserved for vendor specific extensions. Vendors may
 use values in this range without conflicting with current or
 future system\dash defined values. All other values are reserved
@@ -36,12 +38,14 @@ the first special line number opcode. However, since the
 number of standard opcodes varies with the DWARF version,
 the range for extensions is also version dependent. Thus,
 \livetarg{chap:DWLNSlouser}{DW\-\_LNS\-\_lo\-\_user} and 
 number of standard opcodes varies with the DWARF version,
 the range for extensions is also version dependent. Thus,
 \livetarg{chap:DWLNSlouser}{DW\-\_LNS\-\_lo\-\_user} and 
-\livetarg{chap:DWLNShiuser}{DW\-\_LNS\-\_hi\-\_user} symbols are not defined.}
+\livetarg{chap:DWLNShiuser}{DW\-\_LNS\-\_hi\-\_user} symbols are not defined.
+}
 
 Vendor defined tags, attributes, base type encodings, location
 atoms, language names, line number actions, calling conventions
 and call frame instructions, conventionally use the form
 
 Vendor defined tags, attributes, base type encodings, location
 atoms, language names, line number actions, calling conventions
 and call frame instructions, conventionally use the form
-prefix\_vendor\_id\_name, where vendor\_id is some identifying
+\text{prefix\_vendor\_id\_name}, where 
+\textit{vendor\_id}\addtoindexx{vendor id} is some identifying
 character sequence chosen so as to avoid conflicts with
 other vendors.
 
 character sequence chosen so as to avoid conflicts with
 other vendors.
 
@@ -69,6 +73,7 @@ the semantics of previously existing tags.
 \label{datarep:reservedvalues}
 \subsection{Error Values}
 \label{datarep:errorvalues}
 \label{datarep:reservedvalues}
 \subsection{Error Values}
 \label{datarep:errorvalues}
+\addtoindexx{reserved values!error}
 
 As a convenience for consumers of DWARF information, the value
 0 is reserved in the encodings for attribute names, attribute
 
 As a convenience for consumers of DWARF information, the value
 0 is reserved in the encodings for attribute names, attribute
@@ -82,6 +87,7 @@ not appear in DWARF debugging information.
 
 \subsection{Initial Length Values}
 \label{datarep:initiallengthvalues}
 
 \subsection{Initial Length Values}
 \label{datarep:initiallengthvalues}
+\addtoindexx{reserved values!initial length}
 
 An initial length field is one of the length fields that occur
 at the beginning of those DWARF sections that have a header
 
 An initial length field is one of the length fields that occur
 at the beginning of those DWARF sections that have a header
@@ -305,7 +311,7 @@ integer that gives the actual length
 
 \item  version (uhalf)
 A 2\dash byte unsigned integer representing the version of the
 
 \item  version (uhalf)
 A 2\dash byte unsigned integer representing the version of the
-DWARF information for the compilation unit 
+DWARF information for the compilation unit\addtoindexx{version number!compilation unit} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 The value in this field is 4.
 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 The value in this field is 4.
 
@@ -354,7 +360,7 @@ consists of the 4\dash byte value 0xffffffff followed by an
 
 \item  version (uhalf)
 A 2\dash byte unsigned integer representing the version of the
 
 \item  version (uhalf)
 A 2\dash byte unsigned integer representing the version of the
-DWARF information for the compilation unit 
+DWARF information for the compilation unit\addtoindexx{version number!type unit} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 The value in this field is 4.
 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 The value in this field is 4.
 
@@ -882,7 +888,7 @@ Child determination name& Value\\ \hline
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|l|l}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|l|l}
-  \caption{Attribute encodings} \label{tab:attributeencodings} \\
+  \caption{Attribute encodings} \label{tab:attributeencodings} \addtoindexx{attribute encodings} \\
   \hline \\ \bfseries Attribute name&\bfseries Value &\bfseries Classes \\ \hline
 \endfirsthead
   \bfseries Attribute name&\bfseries Value &\bfseries Classes\\ \hline
   \hline \\ \bfseries Attribute name&\bfseries Value &\bfseries Classes \\ \hline
 \endfirsthead
   \bfseries Attribute name&\bfseries Value &\bfseries Classes\\ \hline
@@ -891,105 +897,195 @@ Child determination name& Value\\ \hline
 \endfoot
   \hline
 \endlastfoot
 \endfoot
   \hline
 \endlastfoot
-\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling}&0x01&reference \\
-\livelink{chap:DWATlocation}{DW\-\_AT\-\_location}&0x02&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}   \\
-\livelink{chap:DWATname}{DW\-\_AT\-\_name}&0x03&string   \\
-\livelink{chap:DWATordering}{DW\-\_AT\-\_ordering}&0x09&constant   \\
-\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}&0x0b&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
-\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}&0x0c&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
-\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}&0x0d&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
-\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list}&0x10&\livelink{chap:lineptr}{lineptr}   \\
-\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}&0x11&address   \\
-\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}&0x12&address, constant   \\
-\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}&0x13&constant   \\
-\livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr}&0x15&reference   \\
-\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value}&0x16&constant   \\
-\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility}&0x17&constant   \\
-\livelink{chap:DWATimport}{DW\-\_AT\-\_import}&0x18&reference   \\
-\livelink{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length}&0x19&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}   \\
-\livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference}&0x1a&reference   \\
-\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir}&0x1b&string   \\
-\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}&0x1c&\livelink{chap:block}{block}, constant, string   \\
-\livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}&0x1d&reference     \\
-\livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value}&0x1e&reference     \\
-\livelink{chap:DWATinline}{DW\-\_AT\-\_inline}&0x20&constant     \\
-\livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}&0x21&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}&0x22&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer}&0x25&string     \\
-\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped}&0x27&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr}&0x2a&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
+\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling}&0x01&reference 
+        \addtoindexx{sibling attribute!encoding} \\
+\livelink{chap:DWATlocation}{DW\-\_AT\-\_location}&0x02&\livelink{chap:exprloc}{exprloc}, 
+        \livelink{chap:loclistptr}{loclistptr}\addtoindex{location attribute!encoding}   \\
+\livelink{chap:DWATname}{DW\-\_AT\-\_name}&0x03&string 
+        \addtoindexx{name attribute!encoding} \\
+\livelink{chap:DWATordering}{DW\-\_AT\-\_ordering}&0x09&constant 
+        \addtoindexx{ordering attribute!encoding}  \\
+\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}&0x0b&constant, \livelink{chap:exprloc}{exprloc}, 
+        reference \addtoindexx{byte size attribute!encoding} \\
+\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}&0x0c&constant, 
+        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit offset attribute!encoding}  \\
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}&0x0d&constant, 
+        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit size attribute!encoding} \\
+\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list}&0x10&\livelink{chap:lineptr}{lineptr} 
+        \addtoindex{statement list attribute!encoding} \\
+\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}&0x11&address 
+        \addtoindexx{lowpc attribute!encoding}  \\
+\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}&0x12&address, constant 
+        \addtoindexx{highpc attribute!encoding}  \\
+\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}&0x13&constant 
+        \addtoindexx{language attribute!encoding}  \\
+\livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr}&0x15&reference 
+        \addtoindexx{discriminant attribute!encoding}  \\
+\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value}&0x16&constant 
+        \addtoindexx{discriminant value attribute!encoding}  \\
+\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility}&0x17&constant 
+        \addtoindexx{visibility attribute!encoding} \\
+\livelink{chap:DWATimport}{DW\-\_AT\-\_import}&0x18&reference 
+        \addtoindexx{import attribute!encoding}  \\
+\livelink{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length}&0x19&\livelink{chap:exprloc}{exprloc}, 
+        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{string length attribute!encoding}  \\
+\livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference}&0x1a&reference 
+        \addtoindexx{common reference attribute!encoding}  \\
+\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir}&0x1b&string 
+        \addtoindexx{compilation directory attribute!encoding}  \\
+\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}&0x1c&\livelink{chap:block}{block}, constant, string 
+        \addtoindexx{constant value attribute!encoding} \\
+\livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}&0x1d&reference 
+        \addtoindexx{containing type attribute!encoding} \\
+\livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value}&0x1e&reference 
+        \addtoindexx{default value attribute!encoding} \\
+\livelink{chap:DWATinline}{DW\-\_AT\-\_inline}&0x20&constant 
+        \addtoindexx{inlineibute!encoding}  \\
+\livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}&0x21&\livelink{chap:flag}{flag} 
+        \addtoindexx{is optional attribute!encoding} \\
+\livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}&0x22&constant, 
+        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{lower bound attribute!encoding}  \\
+\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer}&0x25&string \addtoindexx{producer attribute!encoding}  \\
+\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped}&0x27&\livelink{chap:flag}{flag} 
+        \addtoindexx{prototyped attribute!encoding}  \\
+\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr}&0x2a&\livelink{chap:exprloc}{exprloc},
+        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{return address attribute!encoding}  \\
 % FIXME: lower case , not Constant
 % FIXME: lower case , not Constant
-\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope}&0x2c&Constant, \livelink{chap:rangelistptr}{rangelistptr}     \\
-\livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride}&0x2e&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}&0x2f&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}&0x31&reference     \\
-\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}&0x32&constant     \\
-\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class}&0x33&constant     \\
-\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}&0x34&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types}&0x35&reference     \\
-\livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention}&0x36&constant     \\
-\livelink{chap:DWATcount}{DW\-\_AT\-\_count}&0x37&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}&0x38&constant, \livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
-\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column}&0x39&constant     \\
-\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}&0x3a&constant     \\
-\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}&0x3b&constant     \\
-\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}&0x3c&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}&0x3d&\livelink{chap:block}{block}     \\
-\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}&0x3e&constant     \\
-\livelink{chap:DWATexternal}{DW\-\_AT\-\_external}&0x3f&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}&0x40&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
-\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend}&0x41&reference     \\
-\livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}&0x42&constant    \\
-\livelink{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info}&0x43&\livelink{chap:macptr}{macptr}    \\
-\livelink{chap:DWATnamelistitem}{DW\-\_AT\-\_namelist\-\_item}&0x44&reference    \\
-\livelink{chap:DWATpriority}{DW\-\_AT\-\_priority}&0x45&reference    \\
-\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment}&0x46&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
-\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification}&0x47&reference    \\
-\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}&0x48&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
-\livelink{chap:DWATtype}{DW\-\_AT\-\_type}&0x49&reference    \\
-\livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location}&0x4a&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
-\livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}&0x4b&\livelink{chap:flag}{flag}    \\
-\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}&0x4c&constant    \\
-\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}&0x4d&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
-
-
-\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated}&0x4e&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated}&0x4f&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}&0x50&\livelink{chap:exprloc}{exprloc}     \\
-\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}&0x51&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-\livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc}&0x52&address     \\
-\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}&0x53&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATextension}{DW\-\_AT\-\_extension}&0x54&reference     \\
-\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges}&0x55&\livelink{chap:rangelistptr}{rangelistptr}     \\
-\livelink{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline}&0x56&address, \livelink{chap:flag}{flag}, reference, string     \\
-\livelink{chap:DWATcallcolumn}{DW\-\_AT\-\_call\-\_column}&0x57&constant     \\
-\livelink{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file}&0x58&constant     \\
-\livelink{chap:DWATcallline}{DW\-\_AT\-\_call\-\_line}&0x59&constant     \\
-\livelink{chap:DWATdescription}{DW\-\_AT\-\_description}&0x5a&string     \\
-\livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale}&0x5b&constant     \\
-\livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}&0x5c&constant     \\
-\livelink{chap:DWATsmall}{DW\-\_AT\-\_small} &0x5d&reference     \\
-\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}&0x5e&constant     \\
-\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count}&0x5f&constant     \\
-\livelink{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string}&0x60&string      \\
-\livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable}&0x61&\livelink{chap:flag}{flag}     \\
-
-
-\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}&0x62&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit}&0x63&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}&0x64&reference     \\
-\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity}&0x65&constant     \\
-\livelink{chap:DWATelemental}{DW\-\_AT\-\_elemental}&0x66&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATpure}{DW\-\_AT\-\_pure}&0x67&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive}&0x68&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \ddag &0x69&reference     \\ 
-\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \ddag &0x6a&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} \ddag &0x6b&constant     \\
-\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} \ddag &0x6c&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class} \ddag &0x6d&\livelink{chap:flag}{flag}     \\
-\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \ddag &0x6e&string     \\
-\livetarg{chap:DWATlouser}{DW\-\_AT\-\_lo\-\_user}&0x2000 & ---     \\
-\livetarg{chap:DWAThiuser}{DW\-\_AT\-\_hi\-\_user}&0x3fff& ---     \\
+\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope}&0x2c&Constant, 
+        \livelink{chap:rangelistptr}{rangelistptr} \addtoindexx{start scope attribute!encoding}  \\
+\livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride}&0x2e&constant,
+        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit stride attribute!encoding}  \\
+\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}&0x2f&constant,
+        \livelink{chap:exprloc}{exprloc}, reference \addtoindexx{upper bound attribute!encoding}  \\
+\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}&0x31&reference 
+        \addtoindexx{abstract origin attribute!encoding}  \\
+\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}&0x32&constant 
+        \addtoindexx{accessibility attribute!encoding}  \\
+\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class}&0x33&constant 
+        \addtoindexx{address class atribute!encoding}  \\
+\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}&0x34&\livelink{chap:flag}{flag} 
+        \addtoindexx{artificial attribute!encoding}  \\
+\livelink{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types}&0x35&reference 
+        \addtoindexx{base types attribute!encoding}  \\
+\livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention}&0x36&constant 
+        \addtoindexx{calling convention attribute!encoding} \\
+\livelink{chap:DWATcount}{DW\-\_AT\-\_count}&0x37&constant, \livelink{chap:exprloc}{exprloc}, reference 
+        \addtoindexx{count attribute!encoding}  \\
+\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}&0x38&constant, 
+        \livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr} 
+        \addtoindexx{data member attribute!encoding}  \\
+\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column}&0x39&constant 
+        \addtoindexx{declaration column attribute!encoding}  \\
+\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}&0x3a&constant 
+        \addtoindexx{declaration file attribute!encoding}  \\
+\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}&0x3b&constant 
+        \addtoindexx{declaration line attribute!encoding}  \\
+\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}&0x3c&\livelink{chap:flag}{flag} 
+        \addtoindexx{declaration attribute!encoding}  \\
+\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}&0x3d&\livelink{chap:block}{block} 
+        \addtoindexx{discriminant list attribute!encoding}  \\
+\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}&0x3e&constant 
+        \addtoindexx{encoding attribute!encoding}  \\
+\livelink{chap:DWATexternal}{DW\-\_AT\-\_external}&0x3f&\livelink{chap:flag}{flag} 
+        \addtoindexx{external attribute!encoding}  \\
+\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}&0x40&\livelink{chap:exprloc}{exprloc}, 
+        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{frame base attribute!encoding}  \\
+\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend}&0x41&reference 
+        \addtoindexx{friend attribute!encoding}  \\
+\livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}&0x42&constant 
+        \addtoindexx{identifier case attribute!encoding}  \\
+\livelink{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info}&0x43&\livelink{chap:macptr}{macptr} 
+        \addtoindexx{macro information attribute!encoding}  \\
+\livelink{chap:DWATnamelistitem}{DW\-\_AT\-\_namelist\-\_item}&0x44&reference 
+        \addtoindexx{name list item attribute!encoding}  \\
+\livelink{chap:DWATpriority}{DW\-\_AT\-\_priority}&0x45&reference 
+        \addtoindexx{priority attribute!encoding}  \\
+\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment}&0x46&\livelink{chap:exprloc}{exprloc}, 
+        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{segment attribute!encoding}  \\
+\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification}&0x47&reference 
+        \addtoindexx{specification attribute!encoding}  \\
+\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}&0x48&\livelink{chap:exprloc}{exprloc}, 
+        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{static link attribute!encoding}  \\
+\livelink{chap:DWATtype}{DW\-\_AT\-\_type}&0x49&reference 
+        \addtoindexx{type attribute!encoding}  \\
+\livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location}&0x4a&\livelink{chap:exprloc}{exprloc}, 
+        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{location list attribute!encoding}  \\
+\livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}&0x4b&\livelink{chap:flag}{flag} 
+        \addtoindexx{variable parameter attribute!encoding}  \\
+\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}&0x4c&constant 
+        \addtoindexx{virtuality attribute!encoding}  \\
+\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}&0x4d&\livelink{chap:exprloc}{exprloc}, 
+        \livelink{chap:loclistptr}{loclistptr} \addtoindexx{vtable element location attribute!encoding}  \\
+
+\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated}&0x4e&constant, \livelink{chap:exprloc}{exprloc}, 
+        reference \addtoindexx{allocated attribute!encoding}  \\
+\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated}&0x4f&constant, \livelink{chap:exprloc}{exprloc}, 
+        reference \addtoindexx{associated attribute!encoding}  \\
+\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}&0x50&\livelink{chap:exprloc}{exprloc} 
+        \addtoindexx{data location attribute!encoding}  \\
+\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}&0x51&constant, \livelink{chap:exprloc}{exprloc}, 
+        reference \addtoindexx{byte stride attribute!encoding}  \\
+\livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc}&0x52&address 
+        \addtoindexx{entry pc attribute!encoding}  \\
+\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}&0x53&\livelink{chap:flag}{flag} 
+        \addtoindexx{use UTF8 attribute!encoding}  \\
+\livelink{chap:DWATextension}{DW\-\_AT\-\_extension}&0x54&reference 
+        \addtoindexx{extension attribute!encoding}  \\
+\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges}&0x55&\livelink{chap:rangelistptr}{rangelistptr} 
+        \addtoindexx{ranges attribute!encoding}  \\
+\livelink{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline}&0x56&address, \livelink{chap:flag}{flag}, 
+        reference, string \addtoindexx{trampoline attribute!encoding}  \\
+\livelink{chap:DWATcallcolumn}{DW\-\_AT\-\_call\-\_column}&0x57&constant 
+        \addtoindexx{call column attribute!encoding}  \\
+\livelink{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file}&0x58&constant 
+        \addtoindexx{call file attribute!encoding}  \\
+\livelink{chap:DWATcallline}{DW\-\_AT\-\_call\-\_line}&0x59&constant 
+        \addtoindexx{call line attribute!encoding}  \\
+\livelink{chap:DWATdescription}{DW\-\_AT\-\_description}&0x5a&string 
+        \addtoindexx{description attribute!encoding}  \\
+\livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale}&0x5b&constant 
+        \addtoindexx{binary scale attribute!encoding}  \\
+\livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}&0x5c&constant 
+        \addtoindexx{decimal scale attribute!encoding}  \\
+\livelink{chap:DWATsmall}{DW\-\_AT\-\_small} &0x5d&reference 
+        \addtoindexx{small attribute!encoding}  \\
+\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}&0x5e&constant 
+        \addtoindexx{decimal scale attribute!encoding}  \\
+\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count}&0x5f&constant 
+        \addtoindexx{digit count attribute!encoding}  \\
+\livelink{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string}&0x60&string 
+        \addtoindexx{picture string attribute!encoding}  \\
+\livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable}&0x61&\livelink{chap:flag}{flag} 
+        \addtoindexx{mutable attribute!encoding}  \\
+
+\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}&0x62&\livelink{chap:flag}{flag} 
+        \addtoindexx{thread scaled attribute!encoding}  \\
+\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit}&0x63&\livelink{chap:flag}{flag} 
+        \addtoindexx{explicit attribute!encoding}  \\
+\livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}&0x64&reference 
+        \addtoindexx{object pointer attribute!encoding}  \\
+\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity}&0x65&constant 
+        \addtoindexx{endianity attribute!encoding}  \\
+\livelink{chap:DWATelemental}{DW\-\_AT\-\_elemental}&0x66&\livelink{chap:flag}{flag} 
+        \addtoindexx{elemental attribute!encoding}  \\
+\livelink{chap:DWATpure}{DW\-\_AT\-\_pure}&0x67&\livelink{chap:flag}{flag} 
+        \addtoindexx{pure attribute!encoding}  \\
+\livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive}&0x68&\livelink{chap:flag}{flag} 
+        \addtoindexx{recursive attribute!encoding}  \\
+\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \ddag &0x69&reference 
+        \addtoindexx{signature attribute!encoding}  \\ 
+\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \ddag &0x6a&\livelink{chap:flag}{flag} 
+        \addtoindexx{main subprogram attribute!encoding}  \\
+\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} \ddag &0x6b&constant 
+        \addtoindexx{data bit offset attribute!encoding}  \\
+\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} \ddag &0x6c&\livelink{chap:flag}{flag} 
+        \addtoindexx{constant expression attribute!encoding}  \\
+\livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class} \ddag &0x6d&\livelink{chap:flag}{flag} 
+        \addtoindexx{enumeration class attribute!encoding}  \\
+\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \ddag &0x6e&string 
+        \addtoindexx{linkage name attribute!encoding}  \\
+\livetarg{chap:DWATlouser}{DW\-\_AT\-\_lo\-\_user}&0x2000 & --- \addtoindexx{low user attribute encoding}  \\
+\livetarg{chap:DWAThiuser}{DW\-\_AT\-\_hi\-\_user}&0x3fff& --- \addtoindexx{high user attribute encoding}  \\
 
 \end{longtable}
 \ddag  Attribute new in DWARF Version 4 
 
 \end{longtable}
 \ddag  Attribute new in DWARF Version 4 
@@ -1039,6 +1135,8 @@ Child determination name& Value\\ \hline
 
 \section{Variable Length Data}
 \label{datarep:variablelengthdata}
 
 \section{Variable Length Data}
 \label{datarep:variablelengthdata}
+\addtoindexx{variable length data|see {LEB128}}
+\addtoindexx{LEB128 encoding}
 Integers may be encoded using ``Little Endian Base 128''
 (LEB128) numbers. LEB128 is a scheme for encoding integers
 densely that exploits the assumption that most integers are
 Integers may be encoded using ``Little Endian Base 128''
 (LEB128) numbers. LEB128 is a scheme for encoding integers
 densely that exploits the assumption that most integers are
@@ -1093,7 +1191,7 @@ gives algorithms for encoding and decoding these forms.
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|l|l}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|l|l}
-  \caption{Examples of unsigned LEB32 encodings} \label{tab:examplesofunsignedleb128encodings} \\
+  \caption{Examples of unsigned LEB128 encodings} \label{tab:examplesofunsignedleb128encodings} \\
   \hline \\ \bfseries Number&\bfseries First byte &\bfseries Second byte \\ \hline
 \endfirsthead
   \bfseries Number&\bfseries First Byte &\bfseries Second byte\\ \hline
   \hline \\ \bfseries Number&\bfseries First byte &\bfseries Second byte \\ \hline
 \endfirsthead
   \bfseries Number&\bfseries First Byte &\bfseries Second byte\\ \hline
@@ -1108,7 +1206,7 @@ gives algorithms for encoding and decoding these forms.
 129& 1 + 0x80 & 1 \\
 130& 2 + 0x80 & 1 \\
 12857& 57 + 0x80 & 100 \\
 129& 1 + 0x80 & 1 \\
 130& 2 + 0x80 & 1 \\
 12857& 57 + 0x80 & 100 \\
-
+\addtoindex{LEB128 encoding!examples}
 \end{longtable}
 \end{centering}
 
 \end{longtable}
 \end{centering}
 
@@ -1117,7 +1215,7 @@ gives algorithms for encoding and decoding these forms.
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|l|l}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|l|l}
-  \caption{Examples of signed LEB32 encodings} \label{tab:examplesofsignedleb128encodings} \\
+  \caption{Examples of signed LEB128 encodings} \label{tab:examplesofsignedleb128encodings} \\
   \hline \\ \bfseries Number&\bfseries First byte &\bfseries Second byte \\ \hline
 \endfirsthead
   \bfseries Number&\bfseries First Byte &\bfseries Second byte\\ \hline
   \hline \\ \bfseries Number&\bfseries First byte &\bfseries Second byte \\ \hline
 \endfirsthead
   \bfseries Number&\bfseries First Byte &\bfseries Second byte\\ \hline
@@ -1712,7 +1810,8 @@ integer that gives the actual length
 
 \item  version (uhalf)
 A 2\dash byte unsigned integer representing the version of the
 
 \item  version (uhalf)
 A 2\dash byte unsigned integer representing the version of the
-DWARF information for the compilation unit
+DWARF information\addtoindexx{version number!compilation unit} for the compilation unit
+\addtoindexx{version number!name lookup table}
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}).
 The value in this field is 4.
 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}).
 The value in this field is 4.
 
@@ -1770,7 +1869,8 @@ the actual length
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \item version (uhalf) \\
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \item version (uhalf) \\
-A 2\dash byte version identifier containing the value 2 
+A 2\dash byte version identifier
+\addtoindexx{version number!address range table} containing the value 2 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 
 \item debug\_info\_offset (section offset) \\
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 
 \item debug\_info\_offset (section offset) \\
@@ -1815,7 +1915,8 @@ the terminating tuple.
 \section{Line Number Information}
 \label{datarep:linenumberinformation}
 
 \section{Line Number Information}
 \label{datarep:linenumberinformation}
 
-The version number in the line number program header is 4
+The \addtoindexi{version number}{version number!line number information}
+in the line number program header is 4
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 
 The boolean values ``true'' and ``false'' 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 
 The boolean values ``true'' and ``false'' 
@@ -1889,7 +1990,8 @@ Table \refersec{tab:linenumberextendedopcodeencodings}.
 
 The source line numbers and source file indices encoded in the
 macro information section are represented as unsigned LEB128
 
 The source line numbers and source file indices encoded in the
 macro information section are represented as unsigned LEB128
-numbers as are the constants in a \livelink{chap:DWMACINFOvendorext}{DW\-\_MACINFO\-\_vendor\-\_ext} entry.
+numbers as are the constants in a 
+\livelink{chap:DWMACINFOvendorext}{DW\-\_MACINFO\-\_vendor\-\_ext} entry.
 
 The macinfo type is encoded as a single byte. 
 The encodings are given in 
 
 The macinfo type is encoded as a single byte. 
 The encodings are given in 
@@ -1925,8 +2027,8 @@ In the 32\dash bit DWARF format, the value of the CIE id in the
 CIE header is 0xffffffff; in the 64\dash bit DWARF format, the
 value is 0xffffffffffffffff.
 
 CIE header is 0xffffffff; in the 64\dash bit DWARF format, the
 value is 0xffffffffffffffff.
 
-The value of the CIE version number is 4 
-(see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
+The value of the CIE \addtoindexi{version number}{version number!call frame information}
+is 4 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 
 Call frame instructions are encoded in one or more bytes. The
 primary opcode is encoded in the high order two bits of
 
 Call frame instructions are encoded in one or more bytes. The
 primary opcode is encoded in the high order two bits of
index 8f738a7..28d6281 100644 (file)
@@ -64,7 +64,7 @@ escapeinside={\%*}{*)}  % if you want to add a comment within your code
 
 % Generate a page ref.
 % use like   \refersec{chap:registerbasedaddressing}
 
 % Generate a page ref.
 % use like   \refersec{chap:registerbasedaddressing}
-\newcommand{\refersec}[1]{ \ref{#1} Page \pageref{#1} }
+\newcommand{\refersec}[1]{\ref{#1} on page \pageref{#1}}
 
 % Generate a live link in the document
 % use like \livelink{chap:DWOPdup}{DW\-\_OP\-\_dup}
 
 % Generate a live link in the document
 % use like \livelink{chap:DWOPdup}{DW\-\_OP\-\_dup}
@@ -157,9 +157,14 @@ escapeinside={\%*}{*)}  % if you want to add a comment within your code
 \include{foreword}
 
 \tableofcontents
 \include{foreword}
 
 \tableofcontents
+
+\newpage
 \listoffigures
 \listoffigures
+
+\newpage
 \listoftables
 
 \listoftables
 
+\newpage
 \mainmatter
 
 % Define the levels of sectionality that are numbered.
 \mainmatter
 
 % Define the levels of sectionality that are numbered.
@@ -184,6 +189,7 @@ escapeinside={\%*}{*)}  % if you want to add a comment within your code
 
 \aliaspagestyle{chapter}{fragFirstChPage}
 
 
 \aliaspagestyle{chapter}{fragFirstChPage}
 
+\flushleft
 
 \include{introduction}
 \include{generaldescription}
 
 \include{introduction}
 \include{generaldescription}
index e3610ef..acc357f 100644 (file)
@@ -1,6 +1,8 @@
 
 \chapter[Encoding/Decoding (Informative)]{Variable Length Data: Encoding/Decoding (Informative)}
 \label{app:variablelengthdataencodingdecodinginformative}
 
 \chapter[Encoding/Decoding (Informative)]{Variable Length Data: Encoding/Decoding (Informative)}
 \label{app:variablelengthdataencodingdecodinginformative}
+\addtoindex{LEB128 encoding!algorithms}
+
 Here are algorithms expressed in a C-like pseudo-code to
 encode and decode signed and unsigned numbers in LEB128
 representation.
 Here are algorithms expressed in a C-like pseudo-code to
 encode and decode signed and unsigned numbers in LEB128
 representation.
index e05f740..11a972d 100644 (file)
@@ -3,7 +3,7 @@
 \section{The Debugging Entry (DIE)}
 \label{chap:thedebuggingentrydie}
 DWARF uses a series of debugging information entries (DIEs) to 
 \section{The Debugging Entry (DIE)}
 \label{chap:thedebuggingentrydie}
 DWARF uses a series of debugging information entries (DIEs) to 
-define a low\dash{} level
+define a low-level
 representation of a source program. 
 Each debugging information entry consists of an identifying
 tag and a series of 
 representation of a source program. 
 Each debugging information entry consists of an identifying
 tag and a series of 
@@ -432,7 +432,7 @@ string table.
 \clearpage
 \section{Relationship of Debugging Information Entries}
 \label{chap:relationshipofdebugginginformationentries}
 \clearpage
 \section{Relationship of Debugging Information Entries}
 \label{chap:relationshipofdebugginginformationentries}
-\textit{
+\textit{%
 A variety of needs can be met by permitting a single
 debugging information entry to “own” an arbitrary number
 of other debugging entries and by permitting the same debugging
 A variety of needs can be met by permitting a single
 debugging information entry to “own” an arbitrary number
 of other debugging entries and by permitting the same debugging
@@ -456,7 +456,7 @@ The child
 entries of any node are exactly those debugging information
 entries owned by that node.  
 
 entries of any node are exactly those debugging information
 entries owned by that node.  
 
-\textit{
+\textit{%
 While the ownership relation
 of the debugging information entries is represented as a
 tree, other relations among the entries exist, for example,
 While the ownership relation
 of the debugging information entries is represented as a
 tree, other relations among the entries exist, for example,
@@ -509,9 +509,7 @@ which is either the default for that processor or which is
 specified by the object file or executable file which contains
 the DWARF information.
 
 specified by the object file or executable file which contains
 the DWARF information.
 
-
-
-\textit{
+\textit{%
 For example, if a particular target architecture supports
 both 32\dash bit and 64\dash bit addresses, the compiler will generate
 an object file which specifies that it contains executable
 For example, if a particular target architecture supports
 both 32\dash bit and 64\dash bit addresses, the compiler will generate
 an object file which specifies that it contains executable
@@ -520,13 +518,12 @@ that case, the DWARF debugging information contained in this
 object file will use the same address size.
 }
 
 object file will use the same address size.
 }
 
-\textit{
+\textit{%
 Architectures which have multiple instruction sets are
 supported by the isa entry in the line number information
 (see Section \refersec{chap:statemachineregisters}).
 }
 
 Architectures which have multiple instruction sets are
 supported by the isa entry in the line number information
 (see Section \refersec{chap:statemachineregisters}).
 }
 
-
 \section{DWARF Expressions}
 \label{chap:dwarfexpressions}
 DWARF expressions describe how to compute a value or name a
 \section{DWARF Expressions}
 \label{chap:dwarfexpressions}
 DWARF expressions describe how to compute a value or name a
@@ -542,7 +539,7 @@ of operands is determined by the opcode.
 In addition to the
 general operations that are defined here, operations that are
 specific to location descriptions are defined in 
 In addition to the
 general operations that are defined here, operations that are
 specific to location descriptions are defined in 
-Section \refersec{chap:locationdescriptions} .
+Section \refersec{chap:locationdescriptions}.
 
 \subsection{General Operations}
 \label{chap:generaloperations}
 
 \subsection{General Operations}
 \label{chap:generaloperations}
@@ -826,7 +823,7 @@ The \livelink{chap:DWOPplusuconst}{DW\-\_OP\-\_plus\-\_uconst} operation pops th
 adds it to the unsigned LEB128 constant operand and pushes
 the result.  This operation is supplied specifically to be
 able to encode more field offsets in two bytes than can be
 adds it to the unsigned LEB128 constant operand and pushes
 the result.  This operation is supplied specifically to be
 able to encode more field offsets in two bytes than can be
-done with “\livelink{chap:DWOPlit}{DW\-\_OP\-\_litn}n \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}”.
+done with “\livelink{chap:DWOPlit}{DW\-\_OP\-\_lit\textit{n}} \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}”.
 
 \item \livetarg{chap:DWOPshl}{DW\-\_OP\-\_shl} \\
 The \livelink{chap:DWOPshl}{DW\-\_OP\-\_shl} operation pops the top two stack entries,
 
 \item \livetarg{chap:DWOPshl}{DW\-\_OP\-\_shl} \\
 The \livelink{chap:DWOPshl}{DW\-\_OP\-\_shl} operation pops the top two stack entries,
@@ -992,7 +989,7 @@ examples illustrate their behavior graphically.
 
 \section{Location Descriptions}
 \label{chap:locationdescriptions}
 
 \section{Location Descriptions}
 \label{chap:locationdescriptions}
-\textit{ Debugging information must provide consumers a way to find
+\textit{Debugging information must provide consumers a way to find
 the location of program variables, determine the bounds
 of dynamic arrays and strings, and possibly to find the
 base address of a subroutine’s stack frame or the return
 the location of program variables, determine the bounds
 of dynamic arrays and strings, and possibly to find the
 base address of a subroutine’s stack frame or the return
@@ -1007,7 +1004,7 @@ of two forms:
 \begin{enumerate}[1]
 \item \textit{Single location descriptions}, which are a language independent representation of
 addressing rules of arbitrary complexity built from 
 \begin{enumerate}[1]
 \item \textit{Single location descriptions}, which are a language independent representation of
 addressing rules of arbitrary complexity built from 
-DWARF expressions (See section \refersec{chap:dwarfexpressions}) 
+DWARF expressions (See Section \refersec{chap:dwarfexpressions}) 
 and/or other
 DWARF operations specific to describing locations. They are
 sufficient for describing the location of any object as long
 and/or other
 DWARF operations specific to describing locations. They are
 sufficient for describing the location of any object as long
@@ -1459,7 +1456,8 @@ declared.}
 The 
 \hypertarget{chap:DWATvisibilityvisibilityofdeclaration}
 visibility of a declaration is represented 
 The 
 \hypertarget{chap:DWATvisibilityvisibilityofdeclaration}
 visibility of a declaration is represented 
-by a \livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} attribute, whose value is a
+by a \livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility}
+attribute\addtoindexx{visibility attribute}, whose value is a
 constant drawn from the set of codes listed in 
 Figure \ref{fig:visibilitycodes}.
 
 constant drawn from the set of codes listed in 
 Figure \ref{fig:visibilitycodes}.
 
@@ -1482,7 +1480,8 @@ member functions and for virtual base classes.}
 The 
 \hypertarget{chap:DWATvirtualityvirtualityindication}
 virtuality of a declaration is represented by a
 The 
 \hypertarget{chap:DWATvirtualityvirtualityindication}
 virtuality of a declaration is represented by a
-\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} attribute, whose value is a constant drawn
+\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}
+attribute\addtoindexx{virtuality attribute}, whose value is a constant drawn
 from the set of codes listed in 
 Figure \ref{fig:virtualitycodes}.
 
 from the set of codes listed in 
 Figure \ref{fig:virtualitycodes}.
 
@@ -1913,7 +1912,7 @@ evaluation of the expression yields the value of
 the attribute.
 \end{itemize}
 
 the attribute.
 \end{itemize}
 
-\textit{
+\textit{%
 Whether an attribute value can be dynamic depends on the
 rules of the applicable programming language.
 }
 Whether an attribute value can be dynamic depends on the
 rules of the applicable programming language.
 }
index 5a0d9a7..88cc2c5 100644 (file)
@@ -88,7 +88,7 @@ not including the length field itself
 (see Section \refersec{datarep:locationdescriptions}).
 
 \item  version (uhalf) \\
 (see Section \refersec{datarep:locationdescriptions}).
 
 \item  version (uhalf) \\
-A version number 
+A version number\addtoindexx{version number!name lookup table}\addtoindexx{version number!type lookup table} 
 (see Section \refersec{datarep:namelookuptables}). 
 This number is specific
 to the name lookup table and is independent of the DWARF
 (see Section \refersec{datarep:namelookuptables}). 
 This number is specific
 to the name lookup table and is independent of the DWARF
@@ -145,10 +145,9 @@ entries for that set, not including the length field itself
 (see Section \refersec{datarep:initiallengthvalues}).
 
 \item version (uhalf) \\
 (see Section \refersec{datarep:initiallengthvalues}).
 
 \item version (uhalf) \\
-A version number 
+A version number\addtoindexx{version number!address lookup table} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
-This
-number is specific to the address lookup table and is
+This number is specific to the address lookup table and is
 independent of the DWARF version number.
 
 \item debug\_info\_offset (section offset) \\
 independent of the DWARF version number.
 
 \item debug\_info\_offset (section offset) \\
@@ -449,7 +448,7 @@ compilation unit, not including the unit\_length field itself
 (see Section \refersec{datarep:initiallengthvalues}). 
 
 \item version (uhalf) 
 (see Section \refersec{datarep:initiallengthvalues}). 
 
 \item version (uhalf) 
-A version number 
+A version number\addtoindexx{version number!line number information} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 This number is specific to
 the line number information and is independent of the DWARF
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 This number is specific to
 the line number information and is independent of the DWARF
@@ -1376,7 +1375,7 @@ integral multiple of the address size.
 A constant that is used to distinguish CIEs from FDEs.
 
 \item  version (ubyte) \\
 A constant that is used to distinguish CIEs from FDEs.
 
 \item  version (ubyte) \\
-A version number 
+A version number\addtoindexx{version number!call frame information} 
 (see Section \refersec{datarep:callframeinformation}). 
 This number is specific to the call frame information
 and is independent of the DWARF version number.
 (see Section \refersec{datarep:callframeinformation}). 
 This number is specific to the call frame information
 and is independent of the DWARF version number.
index 4b88e8c..5ff7b07 100644 (file)
@@ -834,7 +834,8 @@ entries may be interspersed with other entries used by formal
 parameter entries, such as type entries.}
 
 The unspecified parameters of a variable parameter list are
 parameter entries, such as type entries.}
 
 The unspecified parameters of a variable parameter list are
-represented by a debugging information entry with the tag
+represented by a debugging information entry\addtoindexx{unspecified parameters entry}
+with the tag
 \livetarg{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters}.
 
 The entry for a subroutine that includes a 
 \livetarg{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters}.
 
 The entry for a subroutine that includes a 
@@ -1526,8 +1527,9 @@ executable statements within which the fields of a record
 variable may be referenced, unqualified by the name of the
 record variable.}
 
 variable may be referenced, unqualified by the name of the
 record variable.}
 
-A with statement is represented by a debugging information
-entry with the tag \livetarg{chap:DWTAGwithstmt}{DW\-\_TAG\-\_with\-\_stmt}.
+A with statement is represented by a
+\addtoindexi{debugging information entry}{with statement entry}
+with the tag \livetarg{chap:DWTAGwithstmt}{DW\-\_TAG\-\_with\-\_stmt}.
 
 A with statement entry may have either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes or a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
 
 A with statement entry may have either a \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} and
 \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} pair of attributes or a \livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} attribute
@@ -1580,7 +1582,8 @@ that catch \livelink{chap:catchblock}{block}.
 This child entry has one of the 
 \addtoindexx{unspecified parameters entry!in catch block}
 tags
 This child entry has one of the 
 \addtoindexx{unspecified parameters entry!in catch block}
 tags
-\livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} or \livelink{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters},
+\livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} or
+\livelink{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters},
 and will have the same form as other parameter entries.
 
 The siblings immediately following 
 and will have the same form as other parameter entries.
 
 The siblings immediately following 
index 1990131..f5aa204 100644 (file)
@@ -1,6 +1,7 @@
 
 \chapter[Section Version Numbers (Informative)]{DWARF Section Version Numbers (Informative)}
 \label{app:dwarfsectionversionnumbersinformative}
 
 \chapter[Section Version Numbers (Informative)]{DWARF Section Version Numbers (Informative)}
 \label{app:dwarfsectionversionnumbersinformative}
+\addtoindexx{version number!by section}
 
 % The table format looks rather different that V4 and earlier
 % as latex took up too much space and left no room for V5
 
 % The table format looks rather different that V4 and earlier
 % as latex took up too much space and left no room for V5
index 3eaa8dd..ddeaad3 100644 (file)
@@ -60,8 +60,8 @@ a value of the type.
 \addtoindex{C} type int on a machine that uses 32\dash bit
 integers is represented by a base type entry with a name
 attribute whose value is “int”, an encoding attribute
 \addtoindex{C} type int on a machine that uses 32\dash bit
 integers is represented by a base type entry with a name
 attribute whose value is “int”, an encoding attribute
-whose value is \livelink{chap:DWATEsigned}{DW\-\_ATE\-\_signed} and a byte size attribute whose
-value is 4.}
+whose value is \livelink{chap:DWATEsigned}{DW\-\_ATE\-\_signed}
+and a byte size attribute whose value is 4.}
 
 If the value of an object of the given type does not fully
 occupy the storage described by a byte size attribute,
 
 If the value of an object of the given type does not fully
 occupy the storage described by a byte size attribute,
@@ -112,7 +112,8 @@ support its use for compatibility.}
 \textit{The DWARF Version 3 definition of these attributes is as follows.}
 
 \begin{myindentpara}{1cm}
 \textit{The DWARF Version 3 definition of these attributes is as follows.}
 
 \begin{myindentpara}{1cm}
-\textit{A base type entry has a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute, whose value
+\textit{A base type entry has a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}
+attribute, whose value
 (see Section \refersec{chap:staticanddynamicvaluesofattributes})
 is the size in bytes of the storage unit
 used to represent an object of the given type.}
 (see Section \refersec{chap:staticanddynamicvaluesofattributes})
 is the size in bytes of the storage unit
 used to represent an object of the given type.}
@@ -138,7 +139,8 @@ defines the following combinations of attributes:}
 \begin{itemize}
 \item \textit{DW\-\_AT\-\_byte\-\_size}
 \item \textit{DW\-\_AT\-\_bit\-\_size}
 \begin{itemize}
 \item \textit{DW\-\_AT\-\_byte\-\_size}
 \item \textit{DW\-\_AT\-\_bit\-\_size}
-\item \textit{\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}, \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} 
+\item \textit{\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size},
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} 
 and optionally \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}}
 \end{itemize}
 DWARF V3 defines the following combinations:
 and optionally \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}}
 \end{itemize}
 DWARF V3 defines the following combinations:
@@ -146,7 +148,9 @@ DWARF V3 defines the following combinations:
 % bullet list, which looks horrible as a result.
 \begin{itemize}
 \item \textit{DW\-\_AT\-\_byte\-\_size}
 % bullet list, which looks horrible as a result.
 \begin{itemize}
 \item \textit{DW\-\_AT\-\_byte\-\_size}
-\item \textit{\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}, \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} and \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}}
+\item \textit{\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}, 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} and 
+\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}}
 \end{itemize}
 
 \begin{figure}[!here]
 \end{itemize}
 
 \begin{figure}[!here]
@@ -158,9 +162,11 @@ Name&Meaning\\ \hline
   Section \refersec{chap:segmentedaddresses}) \\
 \livetarg{chap:DWATEboolean}{DW\-\_ATE\-\_boolean}& true or false \\
 
   Section \refersec{chap:segmentedaddresses}) \\
 \livetarg{chap:DWATEboolean}{DW\-\_ATE\-\_boolean}& true or false \\
 
-\livetarg{chap:DWATEcomplexfloat}{DW\-\_ATE\-\_complex\-\_float}& complex binary floating\dash point number \\
+\livetarg{chap:DWATEcomplexfloat}{DW\-\_ATE\-\_complex\-\_float}& complex binary
+floating\dash point number \\
 \livetarg{chap:DWATEfloat}{DW\-\_ATE\-\_float} & binary floating\dash point number \\
 \livetarg{chap:DWATEfloat}{DW\-\_ATE\-\_float} & binary floating\dash point number \\
-\livetarg{chap:DWATEimaginaryfloat}{DW\-\_ATE\-\_imaginary\-\_float}& imaginary binary floating\dash point number \\
+\livetarg{chap:DWATEimaginaryfloat}{DW\-\_ATE\-\_imaginary\-\_float}& imaginary binary
+floating\dash point number \\
 \livetarg{chap:DWATEsigned}{DW\-\_ATE\-\_signed}& signed binary integer \\
 \livetarg{chap:DWATEsignedchar}{DW\-\_ATE\-\_signed\-\_char}& signed character \\
 \livetarg{chap:DWATEunsigned}{DW\-\_ATE\-\_unsigned} & unsigned binary integer \\
 \livetarg{chap:DWATEsigned}{DW\-\_ATE\-\_signed}& signed binary integer \\
 \livetarg{chap:DWATEsignedchar}{DW\-\_ATE\-\_signed\-\_char}& signed character \\
 \livetarg{chap:DWATEunsigned}{DW\-\_ATE\-\_unsigned} & unsigned binary integer \\
@@ -221,7 +227,8 @@ value that represents the number of digits in an instance of
 the type.
 
 \hypertarget{chap:DWATdecimalscaledecimalscalefactor}
 the type.
 
 \hypertarget{chap:DWATdecimalscaledecimalscalefactor}
-The \livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale} attribute is an integer constant value
+The \livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}
+attribute is an integer constant value
 that represents the exponent of the base ten scale factor to
 be applied to an instance of the type. A scale of zero puts the
 decimal point immediately to the right of the least significant
 that represents the exponent of the base ten scale factor to
 be applied to an instance of the type. A scale of zero puts the
 decimal point immediately to the right of the least significant
@@ -305,8 +312,10 @@ attribute in mind.}
 \begin{tabular}{lp{9cm}}
 Name&Meaning\\ \hline
 \livetarg{chap:DWDSunsigned}{DW\-\_DS\-\_unsigned} &  unsigned \\
 \begin{tabular}{lp{9cm}}
 Name&Meaning\\ \hline
 \livetarg{chap:DWDSunsigned}{DW\-\_DS\-\_unsigned} &  unsigned \\
-\livetarg{chap:DWDSleadingoverpunch}{DW\-\_DS\-\_leading\-\_overpunch} & Sign is encoded in the most significant digit in a target\dash dependent  manner \\
-\livetarg{chap:DWDStrailingoverpunch}{DW\-\_DS\-\_trailing\-\_overpunch} & Sign is encoded in the least significant digit in a target\dash dependent manner \\
+\livetarg{chap:DWDSleadingoverpunch}{DW\-\_DS\-\_leading\-\_overpunch} & Sign
+is encoded in the most significant digit in a target\dash dependent  manner \\
+\livetarg{chap:DWDStrailingoverpunch}{DW\-\_DS\-\_trailing\-\_overpunch} & Sign
+is encoded in the least significant digit in a target\dash dependent manner \\
 \livetarg{chap:DWDSleadingseparate}{DW\-\_DS\-\_leading\-\_separate} 
 & Decimal type: Sign is a ``+'' or ``-'' character 
 to the left of the most significant digit. \\
 \livetarg{chap:DWDSleadingseparate}{DW\-\_DS\-\_leading\-\_separate} 
 & Decimal type: Sign is a ``+'' or ``-'' character 
 to the left of the most significant digit. \\
@@ -323,9 +332,11 @@ indicating positive or negative. \\
 
 \section{Unspecified Type Entries}
 \label{chap:unspecifiedtypeentries}
 
 \section{Unspecified Type Entries}
 \label{chap:unspecifiedtypeentries}
+\addtoindexx{unspecified type entry}
+\addtoindexx{void type|see{unspecified type entry}}
 Some languages have constructs in which a type 
 may be left unspecified or the absence of a type
 Some languages have constructs in which a type 
 may be left unspecified or the absence of a type
-\addtoindex{unspecified type entry}
+
 may be explicitly indicated.
 
 An unspecified (implicit, unknown, ambiguous or nonexistent)
 may be explicitly indicated.
 
 An unspecified (implicit, unknown, ambiguous or nonexistent)
@@ -333,7 +344,8 @@ type is represented by a debugging information entry with
 the tag \livetarg{chap:DWTAGunspecifiedtype}{DW\-\_TAG\-\_unspecified\-\_type}. 
 If a name has been given
 to the type, then the corresponding unspecified type entry
 the tag \livetarg{chap:DWTAGunspecifiedtype}{DW\-\_TAG\-\_unspecified\-\_type}. 
 If a name has been given
 to the type, then the corresponding unspecified type entry
-has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute whose value is a null\dash terminated
+has 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.
 
 The interpretation of this debugging information entry is
 string containing the name as it appears in the source program.
 
 The interpretation of this debugging information entry is
@@ -353,8 +365,11 @@ respectively). As another
 example, in \addtoindex{Ada} such an unspecified type entry can be referred
 to by the type attribute of an access type where the denoted
 type is incomplete (the name is declared as a type but the
 example, in \addtoindex{Ada} such an unspecified type entry can be referred
 to by the type attribute of an access type where the denoted
 type is incomplete (the name is declared as a type but the
-definition is deferred to a separate compilation unit). Type
-Modifier Entries
+definition is deferred to a separate compilation unit).
+
+\section{Type Modifier Entries}
+\label{chap:typemodifierentries}
+\addtoindexx{type modifier entry}
 
 A base or user\dash defined type may be modified in different ways
 in different languages. A type modifier is represented in
 
 A base or user\dash defined type may be modified in different ways
 in different languages. A type modifier is represented in
@@ -362,7 +377,6 @@ DWARF by a debugging information entry with one of the tags
 given in 
 Figure \refersec{fig:typemodifiertags}.
 
 given in 
 Figure \refersec{fig:typemodifiertags}.
 
-
 If a name has been given to the modified type in the source
 program, then the corresponding modified type entry has
 a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute whose value is a null-terminated
 If a name has been given to the modified type in the source
 program, then the corresponding modified type entry has
 a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute whose value is a null-terminated
@@ -376,7 +390,8 @@ describing a base type, a user-defined type or another type
 modifier.
 
 A modified type entry describing a pointer or reference
 modifier.
 
 A modified type entry describing a pointer or reference
-type (using \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}, \livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type} or
+type (using \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type},
+\livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type} or
 \livelink{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type}) 
 % Another instance of no-good-place-to-put-index entry.
 may
 \livelink{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type}) 
 % Another instance of no-good-place-to-put-index entry.
 may
@@ -389,7 +404,8 @@ attribute to describe how objects having the given pointer
 or reference type ought to be dereferenced.
 
 A modified type entry describing a shared qualified type
 or reference type ought to be dereferenced.
 
 A modified type entry describing a shared qualified type
-(using \livelink{chap:DWTAGsharedtype}{DW\-\_TAG\-\_shared\-\_type}) may have a \livelink{chap:DWATcount}{DW\-\_AT\-\_count} attribute
+(using \livelink{chap:DWTAGsharedtype}{DW\-\_TAG\-\_shared\-\_type}) may have a
+\livelink{chap:DWATcount}{DW\-\_AT\-\_count} attribute
 whose value is a constant expressing the blocksize of the
 type. If no count attribute is present, then the “infinite”
 blocksize is assumed.
 whose value is a constant expressing the blocksize of the
 type. If no count attribute is present, then the “infinite”
 blocksize is assumed.
@@ -403,16 +419,24 @@ order in the source presentation.
 \centering
 \begin{tabular}{lp{9cm}}
 Name&Meaning\\ \hline
 \centering
 \begin{tabular}{lp{9cm}}
 Name&Meaning\\ \hline
-\livetarg{chap:DWTAGconsttype}{DW\-\_TAG\-\_const\-\_type} &  C or C++ const qualified type \addtoindexx{C} \addtoindexx{C++} \\
-\livetarg{chap:DWTAGpackedtype}{DW\-\_TAG\-\_packed\-\_type}& Pascal or Ada packed type \addtoindexx{Ada} \addtoindexx{Pascal} \\
-\livetarg{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type} & Pointer to an object of the type being modified \\
-\livetarg{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type}& C++ (lvalue) reference to an object of the type 
-being modified \\
-\livetarg{chap:DWTAGrestricttype}{DW\-\_TAG\-\_restrict\-\_type}&C restrict qualified type \\
-\livetarg{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type} & C++ rvalue reference to an object of the type
-being modified \\
-\livetarg{chap:DWTAGsharedtype}{DW\-\_TAG\-\_shared\-\_type}&UPC shared qualified type \\
-\livetarg{chap:DWTAGvolatiletype}{DW\-\_TAG\-\_volatile\-\_type}&C or C++ volatile qualified type \\
+\livetarg{chap:DWTAGconsttype}{DW\-\_TAG\-\_const\-\_type} &  C or C++ const qualified type
+\addtoindexx{const qualified type entry} \addtoindexx{C} \addtoindexx{C++} \\
+\livetarg{chap:DWTAGpackedtype}{DW\-\_TAG\-\_packed\-\_type}& Pascal or Ada packed type
+\addtoindexx{packed qualified type entry} \addtoindexx{Ada} \addtoindexx{Pascal} \\
+\livetarg{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type} & Pointer to an object of
+the type being modified \addtoindexx{pointer qualified type entry} \\
+\livetarg{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type}& C++ (lvalue) reference
+to an object of the type 
+being modified \addtoindexx{reference qualified type entry} \\
+\livetarg{chap:DWTAGrestricttype}{DW\-\_TAG\-\_restrict\-\_type}&C restrict qualified type
+\addtoindexx{restricted qualified type entry} \\
+\livetarg{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type} & C++
+rvalue reference to an object of the type being modified 
+\addtoindexx{rvalue reference qualified type entry} \\
+\livetarg{chap:DWTAGsharedtype}{DW\-\_TAG\-\_shared\-\_type}&UPC shared qualified type 
+\addtoindexx{shared qualified type entry} \\
+\livetarg{chap:DWTAGvolatiletype}{DW\-\_TAG\-\_volatile\-\_type}&C or C++ volatile qualified type 
+\addtoindex{volatile qualified type entry} \\
 \end{tabular}
 \caption{Type modifier tags}
 \label{fig:typemodifiertags}
 \end{tabular}
 \caption{Type modifier tags}
 \label{fig:typemodifiertags}
@@ -552,7 +576,8 @@ the number of array elements by the size of each element.}
 
 Each array dimension is described by a debugging information
 entry with either the tag \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type} or the tag
 
 Each array dimension is described by a debugging information
 entry with either the tag \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type} or the tag
-\livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type}. These entries are children of the
+\livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type}. These entries are
+children of the
 array type entry and are ordered to reflect the appearance of
 the dimensions in the source program (i.e., leftmost dimension
 first, next to leftmost second, and so on).
 array type entry and are ordered to reflect the appearance of
 the dimensions in the source program (i.e., leftmost dimension
 first, next to leftmost second, and so on).
@@ -592,6 +617,7 @@ own space in computer memory. The components of a C or C++
 
 \textit{\addtoindex{Pascal} and 
 other languages have a “discriminated union,”
 
 \textit{\addtoindex{Pascal} and 
 other languages have a “discriminated union,”
+\addtoindex{discriminated union|see {variant entry}}
 also called a “variant record.” Here, selection of a
 number of alternative substructures (“variants”) is based
 on the value of a component that is not part of any of those
 also called a “variant record.” Here, selection of a
 number of alternative substructures (“variants”) is based
 on the value of a component that is not part of any of those
@@ -632,7 +658,8 @@ and appear in the same order as the corresponding declarations
 in the source program.
 
 A structure type, union type or class type entry may have
 in the source program.
 
 A structure type, union type or class type entry may have
-either a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} or a \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} attribute 
+either a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} or a
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} attribute 
 \hypertarget{chap:DWATbitsizedatamemberbitsize}
 (see Section \refersec{chap:byteandbitsizes}), 
 whose value is the amount of storage needed
 \hypertarget{chap:DWATbitsizedatamemberbitsize}
 (see Section \refersec{chap:byteandbitsizes}), 
 whose value is the amount of storage needed
@@ -887,12 +914,14 @@ The member entry corresponding to a data member that is
 defined 
 \hypertarget{chap:DWATdatamemberlocationdatamemberlocation}
 in a structure, union or class may have either a
 defined 
 \hypertarget{chap:DWATdatamemberlocationdatamemberlocation}
 in a structure, union or class may have either a
-\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} attribute or a \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}
+\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} attribute or a
+\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}
 attribute. If the beginning of the data member is the same as
 the beginning of the containing entity then neither attribute
 is required.
 
 attribute. If the beginning of the data member is the same as
 the beginning of the containing entity then neither attribute
 is required.
 
-For a \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} attribute there are two cases:
+For a \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} attribute
+there are two cases:
 
 \begin{enumerate}[1.]
 
 
 \begin{enumerate}[1.]
 
@@ -912,20 +941,22 @@ the evaluation is the base address of the member entry.
 the containing construct is equivalent to execution of the
 \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address} operation 
 (see Section \refersec{chap:stackoperations});
 the containing construct is equivalent to execution of the
 \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address} operation 
 (see Section \refersec{chap:stackoperations});
-\livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address} therefore is not needed at the
+\livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address} therefore 
+is not needed at the
 beginning of a location description for a data member. The
 result of the evaluation is a location--either an address or
 the name of a register, not an offset to the member.}
 
 beginning of a location description for a data member. The
 result of the evaluation is a location--either an address or
 the name of a register, not an offset to the member.}
 
-\textit{A \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} attribute that has the form of a
+\textit{A \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} 
+attribute that has the form of a
 location description is not valid for a data member contained
 in an entity that is not byte aligned because DWARF operations
 do not allow for manipulating or computing bit offsets.}
 
 \end{enumerate}
 
 location description is not valid for a data member contained
 in an entity that is not byte aligned because DWARF operations
 do not allow for manipulating or computing bit offsets.}
 
 \end{enumerate}
 
-For a \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} attribute, the value is an integer
-constant 
+For a \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} attribute, 
+the value is an integer constant 
 (see Section \refersec{chap:staticanddynamicvaluesofattributes}) 
 that specifies the number of bits
 from the beginning of the containing entity to the beginning
 (see Section \refersec{chap:staticanddynamicvaluesofattributes}) 
 that specifies the number of bits
 from the beginning of the containing entity to the beginning
@@ -946,7 +977,8 @@ of storage needed to hold the value of the data member.
 \textit{\addtoindex{C} and \addtoindex{C++} 
 \addtoindex{bit fields} 
 typically require the use of the
 \textit{\addtoindex{C} and \addtoindex{C++} 
 \addtoindex{bit fields} 
 typically require the use of the
-\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} and \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} attributes.}
+\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} and 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} attributes.}
 
 \textit{This Standard uses the following bit numbering and direction
 conventions in examples. These conventions are for illustrative
 
 \textit{This Standard uses the following bit numbering and direction
 conventions in examples. These conventions are for illustrative
@@ -1040,13 +1072,14 @@ the target architecture may or may not make this seem natural.}
 and arrays, see 
 Appendix \refersec{app:pascalexample}.}
 
 and arrays, see 
 Appendix \refersec{app:pascalexample}.}
 
-\textit{Attribute \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} is new in DWARF Version 4 and
-is also used for base types 
+\textit{Attribute \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} 
+is new in DWARF Version 4 and is also used for base types 
 (see Section 
 \refersec{chap:basetypeentries}). 
 It replaces the
 \livetarg{chap:DWATbitoffsetdatamemberbitlocation}
 (see Section 
 \refersec{chap:basetypeentries}). 
 It replaces the
 \livetarg{chap:DWATbitoffsetdatamemberbitlocation}
-attributes \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} and \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} when used to
+attributes \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} and
+\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} when used to
 identify the beginning of bit field data members as defined
 in DWARF V3 and earlier. The earlier attributes are defined
 in a manner suitable for bit field members on big-endian
 identify the beginning of bit field data members as defined
 in DWARF V3 and earlier. The earlier attributes are defined
 in a manner suitable for bit field members on big-endian
@@ -1109,21 +1142,25 @@ the bit field is the value of the bit offset attribute.}
 
 
 \textit{Diagrams similar to the above that show the use of the
 
 
 \textit{Diagrams similar to the above that show the use of the
-\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}, \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} and \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} attribute
+\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}, 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} and 
+\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} attribute
 combination may be found in the DWARF Version 3 Standard.}
 
 \textit{In comparing DWARF Versions 3 and 4, note that DWARF V4
 defines the following combinations of attributes:}
 
 \begin{itemize}
 combination may be found in the DWARF Version 3 Standard.}
 
 \textit{In comparing DWARF Versions 3 and 4, note that DWARF V4
 defines the following combinations of attributes:}
 
 \begin{itemize}
-\item \textit{either \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} or
-\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} (to specify the beginning of the
-data member)}
+\item \textit{either \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} 
+or
+\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} 
+(to specify the beginning of the data member)}
 
 % FIXME: the indentation of the following line is suspect.
 \textit{optionally together with}
 
 
 % FIXME: the indentation of the following line is suspect.
 \textit{optionally together with}
 
-\item  \textit{either \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} or \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} (to
+\item  \textit{either \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} or 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} (to
 specify the size of the data member)}
 
 \end{itemize}
 specify the size of the data member)}
 
 \end{itemize}
@@ -1131,14 +1168,17 @@ specify the size of the data member)}
 \textit{DWARF V3 defines the following combinations}
 
 \begin{itemize}
 \textit{DWARF V3 defines the following combinations}
 
 \begin{itemize}
-\item \textit{\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} (to specify the beginning
+\item \textit{\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} 
+(to specify the beginning
 of the data member, except this specification is only partial
 in the case of a bit field) }
 
 % FIXME: the indentation of the following line is suspect.
 \textit{optionally together with}
 
 of the data member, except this specification is only partial
 in the case of a bit field) }
 
 % FIXME: the indentation of the following line is suspect.
 \textit{optionally together with}
 
-\item \textit{\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}, \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} and \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}
+\item \textit{\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}, 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} and 
+\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}
 (to further specify the beginning of a bit field data member
 as well as specify the size of the data member) }
 \end{itemize}
 (to further specify the beginning of a bit field data member
 as well as specify the size of the data member) }
 \end{itemize}
@@ -1147,7 +1187,8 @@ as well as specify the size of the data member) }
 \label{chap:memberfunctionentries}
 
 A member function is represented by a debugging information
 \label{chap:memberfunctionentries}
 
 A member function is represented by a debugging information
-entry with the tag \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}. The member function entry
+entry with the tag \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}.
+The member function entry
 may contain the same attributes and follows the same rules
 as non\dash member global subroutine entries 
 (see Section \refersec{chap:subroutineandentrypointentries}).
 may contain the same attributes and follows the same rules
 as non\dash member global subroutine entries 
 (see Section \refersec{chap:subroutineandentrypointentries}).
@@ -1175,7 +1216,8 @@ function, then that entry has a
 An 
 \hypertarget{chap:DWATvtableelemlocationvirtualfunctiontablevtableslot}
 entry for a virtual function also has a
 An 
 \hypertarget{chap:DWATvtableelemlocationvirtualfunctiontablevtableslot}
 entry for a virtual function also has a
-\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location} attribute whose value contains
+\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}
+\addtoindexi{attribute}{vtable element location attribute} whose value contains
 a location description yielding the address of the slot
 for the function within the virtual function table for the
 enclosing class. The address of an object of the enclosing
 a location description yielding the address of the slot
 for the function within the virtual function table for the
 enclosing class. The address of an object of the enclosing
@@ -1185,7 +1227,8 @@ description is evaluated.
 If 
 \hypertarget{chap:DWATobjectpointerobjectthisselfpointerofmemberfunction}
 the member function entry describes a non\dash static member
 If 
 \hypertarget{chap:DWATobjectpointerobjectthisselfpointerofmemberfunction}
 the member function entry describes a non\dash static member
-function, then that entry has a \livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer} attribute
+function, then that entry has a \livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer} 
+attribute
 whose value is a reference to the formal parameter entry
 that corresponds to the object for which the function is
 called. The name attribute of that formal parameter is defined
 whose value is a reference to the formal parameter entry
 that corresponds to the object for which the function is
 called. The name attribute of that formal parameter is defined
@@ -1196,7 +1239,8 @@ and some other languages). That parameter
 also has a \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} attribute whose value is true.
 
 Conversely, if the member function entry describes a static
 also has a \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} attribute whose value is true.
 
 Conversely, if the member function entry describes a static
-member function, the entry does not have a \livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}
+member function, the entry does not have a 
+\livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}
 attribute.
 
 If the member function entry describes a non\dash static member
 attribute.
 
 If the member function entry describes a non\dash static member
@@ -1208,7 +1252,8 @@ const\dash volatile qualification.
 If a subroutine entry represents the defining declaration
 of a member function and that definition appears outside of
 the body of the enclosing class declaration, the subroutine
 If a subroutine entry represents the defining declaration
 of a member function and that definition appears outside of
 the body of the enclosing class declaration, the subroutine
-entry has a \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute, whose value is
+entry has a \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} 
+attribute, whose value is
 a reference to the debugging information entry representing
 the declaration of this function member. The referenced entry
 will be a child of some class (or structure) type entry.
 a reference to the debugging information entry representing
 the declaration of this function member. The referenced entry
 will be a child of some class (or structure) type entry.
@@ -1232,7 +1277,8 @@ definition, but does represent each instantiation.}
 
 A class template instantiation is represented by a
 debugging information entry with the tag \livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type},
 
 A class template instantiation is represented by a
 debugging information entry with the tag \livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type},
-\livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type} or \livelink{chap:DWTAGuniontype}{DW\-\_TAG\-\_union\-\_type}. With five
+\livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type} or 
+\livelink{chap:DWTAGuniontype}{DW\-\_TAG\-\_union\-\_type}. With five
 exceptions, such an entry will contain the same attributes
 and have the same types of child entries as would an entry
 for a class type defined explicitly using the instantiation
 exceptions, such an entry will contain the same attributes
 and have the same types of child entries as would an entry
 for a class type defined explicitly using the instantiation
@@ -1241,7 +1287,8 @@ types and values. The exceptions are:
 \begin{enumerate}[1.]
 \item Each formal parameterized type declaration appearing in the
 template definition is represented by a debugging information
 \begin{enumerate}[1.]
 \item Each formal parameterized type declaration appearing in the
 template definition is represented by a debugging information
-entry with the tag \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}. Each
+entry with the tag 
+\livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}. Each
 such entry may have a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is
 a null\dash terminated string containing the name of the formal
 type parameter as it appears in the source program. The
 such entry may have a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is
 a null\dash terminated string containing the name of the formal
 type parameter as it appears in the source program. The
@@ -1293,7 +1340,7 @@ generated artificially by the compiler.
 \label{chap:variantentries}
 
 A variant part of a structure is represented by a debugging
 \label{chap:variantentries}
 
 A variant part of a structure is represented by a debugging
-information entry with the 
+information entry\addtoindexx{variant part entry} with the 
 tag \livetarg{chap:DWTAGvariantpart}{DW\-\_TAG\-\_variant\-\_part} and is
 owned by the corresponding structure type entry.
 
 tag \livetarg{chap:DWTAGvariantpart}{DW\-\_TAG\-\_variant\-\_part} and is
 owned by the corresponding structure type entry.
 
@@ -1313,7 +1360,7 @@ the tag type.
 
 Each variant of a particular variant part is represented by
 \hypertarget{chap:DWATdiscrvaluediscriminantvalue}
 
 Each variant of a particular variant part is represented by
 \hypertarget{chap:DWATdiscrvaluediscriminantvalue}
-a debugging information entry with the 
+a debugging information entry\addtoindexx{variant entry} with the 
 tag \livetarg{chap:DWTAGvariant}{DW\-\_TAG\-\_variant}
 and is a child of the variant part entry. The value that
 selects a given variant may be represented in one of three
 tag \livetarg{chap:DWTAGvariant}{DW\-\_TAG\-\_variant}
 and is a child of the variant part entry. The value that
 selects a given variant may be represented in one of three
@@ -1337,7 +1384,8 @@ item on the list is prefixed with a discriminant value
 descriptor that determines whether the list item represents
 a single label or a label range. A single case label is
 represented as an LEB128 number as defined above for the
 descriptor that determines whether the list item represents
 a single label or a label range. A single case label is
 represented as an LEB128 number as defined above for the
-\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value} attribute. A label range is represented by
+\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value} 
+attribute. A label range is represented by
 two LEB128 numbers, the low value of the range followed by the
 high value. Both values follow the rules for signedness just
 described. The discriminant value descriptor is an integer
 two LEB128 numbers, the low value of the range followed by the
 high value. Both values follow the rules for signedness just
 described. The discriminant value descriptor is an integer
@@ -1372,7 +1420,8 @@ Semantically, the condition is ‛true’ if the conditional
 variable's value matches any of the described constants,
 and the condition is ‛false’ otherwise.}
 
 variable's value matches any of the described constants,
 and the condition is ‛false’ otherwise.}
 
-The \livetarg{chap:DWTAGcondition}{DW\-\_TAG\-\_condition} debugging information entry
+The \livetarg{chap:DWTAGcondition}{DW\-\_TAG\-\_condition}
+debugging information entry\addtoindexx{condition entry}
 describes a
 logical condition that tests whether a given data item’s
 value matches one of a set of constant values. If a name
 describes a
 logical condition that tests whether a given data item’s
 value matches one of a set of constant values. If a name
@@ -1382,7 +1431,8 @@ giving the condition name as it appears in the source program.
 
 The condition entry's parent entry describes the conditional
 variable; normally this will be a \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable},
 
 The condition entry's parent entry describes the conditional
 variable; normally this will be a \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable},
-\livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} or \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} entry. If the parent
+\livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} or 
+\livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter} entry. If the parent
 entry has an array type, the condition can test any individual
 element, but not the array as a whole. The condition entry
 implicitly specifies a “comparison type” that is the
 entry has an array type, the condition can test any individual
 element, but not the array as a whole. The condition entry
 implicitly specifies a “comparison type” that is the
@@ -1449,8 +1499,8 @@ integral type determined by the compiler from the properties of
 \hypertarget{chap:DWATenumclasstypesafeenumerationdefinition}
 the enumeration literal values. A \addtoindex{C++} type declaration written
 using enum class declares a strongly typed enumeration and
 \hypertarget{chap:DWATenumclasstypesafeenumerationdefinition}
 the enumeration literal values. A \addtoindex{C++} type declaration written
 using enum class declares a strongly typed enumeration and
-is represented using \livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type} in combination
-with \livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class}.}
+is represented using \livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type} 
+in combination with \livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class}.}
 
 Each enumeration literal is represented by a debugging
 information entry with the 
 
 Each enumeration literal is represented by a debugging
 information entry with the 
@@ -1476,7 +1526,8 @@ dimension of an array type, and the stride for that dimension
 \hypertarget{chap:DWATbytestrideenumerationstridedimensionofarraytype}
 is different than what would otherwise be determined, then
 \hypertarget{chap:DWATbitstrideenumerationstridedimensionofarraytype}
 \hypertarget{chap:DWATbytestrideenumerationstridedimensionofarraytype}
 is different than what would otherwise be determined, then
 \hypertarget{chap:DWATbitstrideenumerationstridedimensionofarraytype}
-the enumeration type entry has either a \livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}
+the enumeration type entry has either a 
+\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}
 or \livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride} attribute 
 \addtoindexx{bit stride attribute}
 which specifies the separation
 or \livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride} attribute 
 \addtoindexx{bit stride attribute}
 which specifies the separation
@@ -1544,7 +1595,8 @@ interpretations:
 \begin{enumerate}[1.]
 \item The formal parameters of a parameter list (that have a
 specific type) are represented by a debugging information entry
 \begin{enumerate}[1.]
 \item The formal parameters of a parameter list (that have a
 specific type) are represented by a debugging information entry
-with the tag \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}. Each formal parameter
+with the tag \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}. 
+Each formal parameter
 entry has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute that refers to the type of
 the formal parameter.
 
 entry has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute that refers to the type of
 the formal parameter.
 
@@ -1592,7 +1644,8 @@ size attribute is present, the size of the data to be retrieved
 is the same as the size of an address on the target machine.
 
 If no string length attribute is present, the string type
 is the same as the size of an address on the target machine.
 
 If no string length attribute is present, the string type
-entry may have a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute or \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}
+entry may have a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute or 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}
 attribute, whose value 
 (see Section \refersec{chap:byteandbitsizes}) 
 is the amount of
 attribute, whose value 
 (see Section \refersec{chap:byteandbitsizes}) 
 is the amount of
@@ -1619,7 +1672,8 @@ If the amount of storage allocated to hold each element of an
 object of the given set type is different from the amount of
 storage that is normally allocated to hold an individual object
 of the indicated element type, then the set type entry has
 object of the given set type is different from the amount of
 storage that is normally allocated to hold an individual object
 of the indicated element type, then the set type entry has
-either a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute, or \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} attribute
+either a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute, or 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} attribute
 whose value (see Section \refersec{chap:byteandbitsizes}) is
 the amount of storage needed to hold a value of the set type.
 
 whose value (see Section \refersec{chap:byteandbitsizes}) is
 the amount of storage needed to hold a value of the set type.
 
@@ -1650,7 +1704,8 @@ If the amount of storage allocated to hold each element of an
 object of the given subrange type is different from the amount
 of storage that is normally allocated to hold an individual
 object of the indicated element type, then the subrange
 object of the given subrange type is different from the amount
 of storage that is normally allocated to hold an individual
 object of the indicated element type, then the subrange
-type entry has a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute or \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}
+type entry has a \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} attribute or 
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}
 attribute, whose value 
 (see Section \refersec{chap:staticanddynamicvaluesofattributes})
 is the amount of
 attribute, whose value 
 (see Section \refersec{chap:staticanddynamicvaluesofattributes})
 is the amount of
@@ -1678,7 +1733,8 @@ subrange
 entry may have the attributes 
 \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}
 and \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound} to specify, respectively, the lower
 entry may have the attributes 
 \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}
 and \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound} to specify, respectively, the lower
-and upper bound values of the subrange. The \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}
+and upper bound values of the subrange. The 
+\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}
 attribute 
 \hypertarget{chap:DWATcountelementsofsubrangetype}
 may be replaced by a 
 attribute 
 \hypertarget{chap:DWATcountelementsofsubrangetype}
 may be replaced by a 
@@ -1784,12 +1840,12 @@ rather than with each instance of the type.}
 The \livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} description is used in conjunction
 with the location descriptions for a particular object of the
 given pointer to member type and for a particular structure or
 The \livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} description is used in conjunction
 with the location descriptions for a particular object of the
 given pointer to member type and for a particular structure or
-class instance. The \livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} attribute expects two
-values to be 
+class instance. The \livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} 
+attribute expects two values to be 
 \addtoindexi{pushed}{address!implicit push for member operator}
 onto the DWARF expression stack before
 \addtoindexi{pushed}{address!implicit push for member operator}
 onto the DWARF expression stack before
-the \livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} description is evaluated. The first
-value 
+the \livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} description is evaluated.
+The first value 
 \addtoindexi{pushed}{address!implicit push for member operator}
 is the value of the pointer to member object
 itself. The second value 
 \addtoindexi{pushed}{address!implicit push for member operator}
 is the value of the pointer to member object
 itself. The second value 
@@ -1951,7 +2007,8 @@ the following child entries:
 \item Each formal parameterized type declaration appearing
 in the template alias declaration is represented
 by a debugging information entry with the tag
 \item Each formal parameterized type declaration appearing
 in the template alias declaration is represented
 by a debugging information entry with the tag
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}. Each such entry may have
+\livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}. 
+Each such entry may have
 a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is a null\dash terminated
 string containing the name of the formal type parameter as it
 appears in the source program. The template type parameter
 a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is a null\dash terminated
 string containing the name of the formal type parameter as it
 appears in the source program. The template type parameter
@@ -1961,14 +2018,15 @@ type by which the formal is replaced for this instantiation.
 \item Each formal parameterized value declaration
 appearing in the template alias declaration is
 represented by a debugging information entry with the tag
 \item Each formal parameterized value declaration
 appearing in the template alias declaration is
 represented by a debugging information entry with the tag
-\livelink{chap:DWTAGtemplatevalueparameter}{DW\-\_TAG\-\_template\-\_value\-\_parameter}. Each such entry may have
+\livelink{chap:DWTAGtemplatevalueparameter}{DW\-\_TAG\-\_template\-\_value\-\_parameter}. 
+Each such entry may have
 a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is a null\dash terminated
 string containing the name of the formal value parameter
 as it appears in the source program. The template value
 parameter entry also has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute describing
 the type of the parameterized value. Finally, the template
 a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, whose value is a null\dash terminated
 string containing the name of the formal value parameter
 as it appears in the source program. The template value
 parameter entry also has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute describing
 the type of the parameterized value. Finally, the template
-value parameter entry has a \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} attribute, whose
-value is the actual constant value of the value parameter for
+value parameter entry has a \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} 
+attribute, whose value is the actual constant value of the value parameter for
 this instantiation as represented on the target architecture.
 \end{enumerate}
 
 this instantiation as represented on the target architecture.
 \end{enumerate}