More changes from Committee review. This checkin corresponds to
authorRon Brender <ron.brender@gmail.com>
Sun, 26 Apr 2015 15:58:18 +0000 (11:58 -0400)
committerRon Brender <ron.brender@gmail.com>
Sun, 26 Apr 2015 15:58:18 +0000 (11:58 -0400)
dwarf5.20150426.pdf.

Signed-off-by: Ron Brender <ron.brender@gmail.com>
15 files changed:
dwarf5/latexdoc/attributesbytag.tex
dwarf5/latexdoc/changesummary.tex
dwarf5/latexdoc/dataobject.tex
dwarf5/latexdoc/datarepresentation.tex
dwarf5/latexdoc/debugsectionrelationships.tex
dwarf5/latexdoc/dwarf5.tex
dwarf5/latexdoc/dwarfnamecmds.tex
dwarf5/latexdoc/examples.tex
dwarf5/latexdoc/generaldescription.tex
dwarf5/latexdoc/gnulicense.tex
dwarf5/latexdoc/introduction.tex
dwarf5/latexdoc/otherdebugginginformation.tex
dwarf5/latexdoc/programscope.tex
dwarf5/latexdoc/splitobjects.tex
dwarf5/latexdoc/typeentries.tex

index 8439db8..45f08bd 100644 (file)
@@ -1,7 +1,7 @@
 \chapter[Attributes by Tag (Informative)]{Attributes by Tag Value (Informative)}
 \label{chap:attributesbytagvalueinformative}
 
-The list below enumerates the attributes that are
+The table below enumerates the attributes that are
 most applicable to each type of debugging information
 entry. DWARF does not in general require that a given
 debugging information entry contain a particular attribute
@@ -11,23 +11,33 @@ text as being applicable to a given entry. Other attributes
 (both those defined within this document but not explicitly
 associated with the entry in question, and new, vendor-defined
 ones) may also appear in a given debugging information
-entry. Therefore, the list may be taken as instructive, but
+entry. Therefore, the table may be taken as instructive, but
 cannot be considered definitive.  
 
-In the following table,
+In the following table, the following special conventions apply:
+\begin{enumerate}[1. ]
+\item The pseudo-attribute
 \addtoindex{DECL}
 \livetarg{chap:DECL}{}
-means include all three of the
+stands for all three of the
 \addtoindex{declaration coordinates} 
-%\addtoindexx{declaration coordinates|see 
-%    {DW\_AT\_decl\_file, DW\_AT\_decl\_line, DW\_AT\_decl\_column}}
 \DWATdeclcolumn,
 \DWATdeclfile{} and 
 \DWATdeclline.
+\item The attribute \DWATsibling{} can be used on any DIE.
+For simplicity, this attribute is not explicitly shown.
+\item The attribute \DWATabstractorigin{} can be used with
+almost any DIE; the exceptions are mostly the compilation
+unit-like DIEs. For simplicity, this attribute is not 
+explicitly shown. 
+\end{enumerate}
 
+\small
+
+\needlines{10}
 \label{tab:attributesbytag}
 \setlength{\extrarowheight}{0.1cm}
-\begin{longtable}{l|p{8cm}}
+\begin{longtable}{l|l}
   \caption{Attributes by tag value} \\
   \hline \bfseries TAG name&\bfseries Applicable attributes\\ \hline
 \endfirsthead
@@ -39,18 +49,16 @@ means include all three of the
 \endlastfoot
 
 \DWTAGaccessdeclaration{} 
-&\livelink{chap:DECL}{DECL} \\
-&\DWATaccessibility{} \\
-&\DWATdescription{} \\
-&\DWATname{} \\
-&\DWATsibling{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATaccessibility{} \\*
+&\DWATdescription{} \\*
+&\DWATname{} \\*
 
 \hline
 \DWTAGarraytype
-&\livelink{chap:DECL}{DECL} \\
-&\DWATabstractorigin{} \\
-&\DWATaccessibility{} \\
-&\DWATalignment{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATaccessibility{} \\*
+&\DWATalignment{} \\*
 &\DWATallocated{} \\
 &\DWATassociated{} \\
 &\DWATbitsize{} \\
@@ -62,24 +70,23 @@ means include all three of the
 &\DWATname{} \\
 &\DWATordering{} \\
 &\DWATrank{} \\
-&\DWATsibling{} \\
 &\DWATspecification{} \\
-&\DWATstartscope{} \\
-&\DWATtype{} \\
-&\DWATvisibility{} \\
+&\DWATstartscope{} \\*
+&\DWATtype{} \\*
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGatomictype
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATalignment{} \\*
-&\DWATsibling{} \\*
+&\DWATname{} \\*
 &\DWATtype{} \\*
 
 \hline
 \DWTAGbasetype
-&\livelink{chap:DECL}{DECL} \\
-&\DWATalignment{} \\
-&\DWATallocated{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATalignment{} \\*
+&\DWATallocated{} \\*
 &\DWATassociated{} \\
 &\DWATbinaryscale{} \\
 %&\DWATbitoffset{} \\
@@ -93,9 +100,8 @@ means include all three of the
 &\DWATdigitcount{} \\
 &\DWATencoding{} \\
 &\DWATendianity{} \\
-&\DWATname{} \\
+&\DWATname{} \\*
 &\DWATpicturestring{} \\*
-&\DWATsibling{} \\*
 &\DWATsmall{} \\*
 
 \hline
@@ -117,28 +123,24 @@ means include all three of the
 &\DWATcalldatavalue     \\*
 &\DWATcallparameter     \\*
 &\DWATcallvalue         \\
-&\DWATlocation          \\
+&\DWATlocation          \\*
 &\DWATname              \\*
-&\DWATsibling           \\*
 &\DWATtype              \\*
 
 \hline
 \DWTAGcatchblock
 &\livelink{chap:DECL}{DECL} \\*
-&\DWATabstractorigin{} \\*
 &\DWATentrypc{} \\*
-&\DWAThighpc{} \\
-&\DWATlowpc{} \\
+&\DWAThighpc{} \\*
+&\DWATlowpc{} \\*
 &\DWATranges{} \\*
 &\DWATsegment{} \\*
-&\DWATsibling{} \\*
 
 \hline
 \DWTAGclasstype
 &\livelink{chap:DECL}{DECL} \\*
-&\DWATabstractorigin{} \\*
 &\DWATaccessibility{} \\*
-&\DWATalignment{} \\
+&\DWATalignment{} \\*
 &\DWATallocated{} \\
 &\DWATassociated{} \\
 &\DWATbitsize{} \\
@@ -149,19 +151,17 @@ means include all three of the
 &\DWATdescription{} \\
 &\DWATexportsymbols{} \\
 &\DWATname{} \\
-&\DWATsibling{} \\
 &\DWATsignature{} \\
-&\DWATspecification{} \\
-&\DWATstartscope{} \\
-&\DWATvisibility{} \\
+&\DWATspecification{} \\*
+&\DWATstartscope{} \\*
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGcoarraytype
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATname{} \\*
-&\DWATdescription{} \\
+&\DWATdescription{} \\*
 &\DWATalignment{} \\*
-&\DWATsibling{} \\*
 &\DWATtype{} \\*
 
 \hline
@@ -171,24 +171,22 @@ means include all three of the
 &\DWATdescription{} \\*
 &\DWATlinkagename{} \\
 &\DWATlocation{} \\
-&\DWATname{} \\
-&\DWATsegment{} \\
-&\DWATsibling{} \\
-&\DWATvisibility{} \\
+&\DWATname{} \\*
+&\DWATsegment{} \\*
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGcommoninclusion
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATcommonreference{} \\*
 &\DWATdeclaration{} \\*
-&\DWATsibling{} \\
-&\DWATvisibility{} \\
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGcompileunit
-&\DWATaddrbase{} \\
-&\DWATbasetypes{} \\
-&\DWATcompdir{} \\
+&\DWATaddrbase{} \\*
+&\DWATbasetypes{} \\*
+&\DWATcompdir{} \\*
 &\DWATdwoid{} \\
 &\DWATdwoname{} \\
 &\DWATentrypc{} \\
@@ -205,19 +203,18 @@ means include all three of the
 &\DWATsegment{} \\
 &\DWATstmtlist{} \\*
 &\DWATstroffsetsbase{} \\*
-&\DWATuseUTFeight{} \\
+&\DWATuseUTFeight{} \\*
 
 \hline
 \DWTAGcondition
-&\livelink{chap:DECL}{DECL} \\
-&\DWATname{} \\
-&\DWATsibling{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATname{} \\*
 
 \hline
 \DWTAGconsttype
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATalignment{} \\*
-&\DWATsibling{} \\*
+&\DWATname{} \\*
 &\DWATtype{} \\*
 
 \hline
@@ -231,10 +228,9 @@ means include all three of the
 &\DWATexternal{} \\
 &\DWATlinkagename{} \\
 &\DWATname{} \\
-&\DWATsibling{} \\
-&\DWATstartscope{} \\
-&\DWATtype{} \\
-&\DWATvisibility{} \\
+&\DWATstartscope{} \\*
+&\DWATtype{} \\*
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGdwarfprocedure
@@ -243,37 +239,33 @@ means include all three of the
 \hline
 \DWTAGdynamictype
 &\livelink{chap:DECL}{DECL} \\*
-&\DWATabstractorigin \\*
 &\DWATalignment{} \\*
-&\DWATallocated \\
+&\DWATallocated \\*
 &\DWATassociated \\
 &\DWATdatalocation \\
-&\DWATdescription \\
-&\DWATname \\
-&\DWATtype \\
-&\DWATsibling \\
+&\DWATdescription \\*
+&\DWATname \\*
+&\DWATtype \\*
 
 \hline
 \DWTAGentrypoint
-&\livelink{chap:DECL}{DECL} \\
-&\DWATaddressclass{} \\
-&\DWATdescription{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATaddressclass{} \\*
+&\DWATdescription{} \\*
 &\DWATframebase{} \\
 &\DWATlinkagename{} \\
 &\DWATlowpc{} \\
 &\DWATname{} \\
 &\DWATreturnaddr{} \\
-&\DWATsegment{} \\
-&\DWATsibling{} \\
-&\DWATstaticlink{} \\
-&\DWATtype{} \\
+&\DWATsegment{} \\*
+&\DWATstaticlink{} \\*
+&\DWATtype{} \\*
 
 \hline
 \DWTAGenumerationtype
 &\livelink{chap:DECL}{DECL} \\*
-&\DWATabstractorigin{} \\*
 &\DWATaccessibility{} \\*
-&\DWATalignment{} \\
+&\DWATalignment{} \\*
 &\DWATallocated{} \\
 &\DWATassociated{} \\
 &\DWATbitsize{} \\
@@ -285,12 +277,11 @@ means include all three of the
 &\DWATdescription{} \\
 &\DWATenumclass{} \\
 &\DWATname{} \\
-&\DWATsibling{} \\
 &\DWATsignature{} \\
 &\DWATspecification{} \\
-&\DWATstartscope{} \\
-&\DWATtype{} \\
-&\DWATvisibility{} \\
+&\DWATstartscope{} \\*
+&\DWATtype{} \\*
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGenumerator
@@ -298,56 +289,48 @@ means include all three of the
 &\DWATconstvalue{} \\*
 &\DWATdescription{} \\*
 &\DWATname{} \\*
-&\DWATsibling{} \\*
 
 \hline
 \DWTAGfiletype
 &\livelink{chap:DECL}{DECL} \\*
-&\DWATabstractorigin{} \\*
 &\DWATalignment{} \\*
-&\DWATallocated{} \\
+&\DWATallocated{} \\*
 &\DWATassociated{} \\
 &\DWATbitsize{} \\
 &\DWATbytesize{} \\
 &\DWATdatalocation{} \\
 &\DWATdescription{} \\
 &\DWATname{} \\
-&\DWATsibling{} \\
-&\DWATstartscope{} \\
-&\DWATtype{} \\
-&\DWATvisibility{} \\
+&\DWATstartscope{} \\*
+&\DWATtype{} \\*
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGformalparameter
-&\livelink{chap:DECL}{DECL} \\
-&\DWATabstractorigin{} \\
-&\DWATartificial{} \\
-&\DWATconstvalue{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATartificial{} \\*
+&\DWATconstvalue{} \\*
 &\DWATdefaultvalue{} \\
 &\DWATdescription{} \\
 &\DWATendianity{} \\
 &\DWATisoptional{} \\
 &\DWATlocation{} \\
 &\DWATname{} \\
-&\DWATsegment{} \\
-&\DWATsibling{} \\*
+&\DWATsegment{} \\*
 &\DWATtype{} \\*
 &\DWATvariableparameter{} \\*
 
 \hline
 \DWTAGfriend
-&\livelink{chap:DECL}{DECL} \\
-&\DWATabstractorigin{} \\
-&\DWATfriend{} \\
-&\DWATsibling{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATfriend{} \\*
 
 \hline
 % Please keep in synch with DW_TAG_subrange_type.
 \DWTAGgenericsubrange
 &\livelink{chap:DECL}{DECL}  \\*
-&\DWATabstractorigin{}  \\*
 &\DWATaccessibility{}  \\*
-&\DWATallocated{}  \\
+&\DWATallocated{}  \\*
 &\DWATassociated{}  \\
 &\DWATbitsize{}  \\
 &\DWATbitstride{}  \\
@@ -359,28 +342,25 @@ means include all three of the
 &\DWATdescription{}  \\
 &\DWATlowerbound{}  \\
 &\DWATname{}  \\
-&\DWATsibling{}  \\
 &\DWATthreadsscaled{}  \\
 &\DWATtype{}  \\*
 &\DWATupperbound{}  \\*
-&\DWATvisibility{}  \\
+&\DWATvisibility{}  \\*
 
 \hline
 \DWTAGimporteddeclaration
-&\livelink{chap:DECL}{DECL} \\
-&\DWATaccessibility{} \\
-&\DWATdescription{} \\
-&\DWATimport{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATaccessibility{} \\*
+&\DWATdescription{} \\*
+&\DWATimport{} \\*
 &\DWATname{} \\*
-&\DWATsibling{} \\*
 &\DWATstartscope{} \\*
 
 \hline
 \DWTAGimportedmodule
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATimport{} \\*
-&\DWATsibling{} \\*
-&\DWATstartscope{} \\
+&\DWATstartscope{} \\*
 
 \hline
 \DWTAGimportedunit
@@ -388,29 +368,26 @@ means include all three of the
 
 \hline
 \DWTAGinheritance
-&\livelink{chap:DECL}{DECL} \\
-&\DWATaccessibility{} \\
-&\DWATdatamemberlocation{} \\
-&\DWATsibling{} \\*
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATaccessibility{} \\*
+&\DWATdatamemberlocation{} \\*
 &\DWATtype{} \\*
 &\DWATvirtuality{} \\*
 
 \hline
 \DWTAGinlinedsubroutine
-&\DWATabstractorigin{} \\
-&\DWATcallcolumn{} \\
-&\DWATcallfile{} \\
-&\DWATcallline{} \\
+&\DWATcallcolumn{} \\*
+&\DWATcallfile{} \\*
+&\DWATcallline{} \\*
 &\DWATconstexpr{} \\
 &\DWATentrypc{} \\
 &\DWAThighpc{} \\
 &\DWATlowpc{} \\
 &\DWATranges{} \\
 &\DWATreturnaddr{} \\
-&\DWATsegment{} \\
-&\DWATsibling{} \\
-&\DWATstartscope{} \\
-&\DWATtrampoline{} \\
+&\DWATsegment{} \\*
+&\DWATstartscope{} \\*
+&\DWATtrampoline{} \\*
 
 \hline
 \DWTAGinterfacetype
@@ -418,40 +395,35 @@ means include all three of the
 &\DWATaccessibility{} \\*
 &\DWATalignment{} \\*
 &\DWATdescription{} \\
-&\DWATname{} \\
-&\DWATsibling{} \\*
+&\DWATname{} \\*
 &\DWATsignature \\*
 &\DWATstartscope{} \\*
 
 \hline
 \DWTAGlabel
 &\livelink{chap:DECL}{DECL} \\*
-&\DWATabstractorigin{} \\*
 &\DWATdescription{} \\*
-&\DWATlowpc{} \\
-&\DWATname{} \\
-&\DWATsegment{} \\
-&\DWATsibling{} \\
-&\DWATstartscope{} \\
+&\DWATlowpc{} \\*
+&\DWATname{} \\*
+&\DWATsegment{} \\*
+&\DWATstartscope{} \\*
 
 \hline
 \DWTAGlexicalblock
 &\livelink{chap:DECL}{DECL} \\*
-&\DWATabstractorigin{} \\*
 &\DWATdescription{} \\*
-&\DWATentrypc{} \\
+&\DWATentrypc{} \\*
 &\DWAThighpc{} \\
 &\DWATlowpc{} \\
-&\DWATname{} \\
-&\DWATranges{} \\
-&\DWATsegment{} \\
-&\DWATsibling{} \\
+&\DWATname{} \\*
+&\DWATranges{} \\*
+&\DWATsegment{} \\*
 
 \hline
 \DWTAGmember
-&\livelink{chap:DECL}{DECL} \\
-&\DWATaccessibility{} \\
-&\DWATartificial{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATaccessibility{} \\*
+&\DWATartificial{} \\*
 %&\DWATbitoffset{} \\
 &\DWATbitsize{} \\
 &\DWATbytesize{} \\
@@ -460,16 +432,15 @@ means include all three of the
 &\DWATdeclaration{} \\
 &\DWATdescription{} \\
 &\DWATmutable{} \\
-&\DWATname{} \\
-&\DWATsibling{} \\*
+&\DWATname{} \\*
 &\DWATtype{} \\*
 &\DWATvisibility{} \\*
 
 \hline
 \DWTAGmodule
-&\livelink{chap:DECL}{DECL} \\
-&\DWATaccessibility{} \\
-&\DWATdeclaration{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATaccessibility{} \\*
+&\DWATdeclaration{} \\*
 &\DWATdescription{} \\
 &\DWATentrypc{} \\
 &\DWAThighpc{} \\
@@ -477,49 +448,44 @@ means include all three of the
 &\DWATname{} \\
 &\DWATpriority{} \\
 &\DWATranges{} \\
-&\DWATsegment{} \\
-&\DWATsibling{} \\*
+&\DWATsegment{} \\*
 &\DWATspecification{} \\*
-&\DWATvisibility{} \\
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGnamelist
-&\livelink{chap:DECL}{DECL} \\
-&\DWATabstractorigin{} \\
-&\DWATaccessibility{} \\
-&\DWATdeclaration{} \\
-&\DWATname{} \\
-&\DWATsibling{} \\
-&\DWATvisibility{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATaccessibility{} \\*
+&\DWATdeclaration{} \\*
+&\DWATname{} \\*
+&\DWATvisibility{} \\*
 
 \hline
 \DWTAGnamelistitem
-&\livelink{chap:DECL}{DECL} \\
-&\DWATnamelistitem{} \\
-&\DWATsibling{} \\
+&\livelink{chap:DECL}{DECL} \\*
+&\DWATnamelistitem{} \\*
 
 \hline
 \DWTAGnamespace
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATdescription{} \\*
 &\DWATexportsymbols{} \\*
-&\DWATextension{} \\
+&\DWATextension{} \\*
 &\DWATname{} \\*
-&\DWATsibling{} \\*
 &\DWATstartscope{} \\*
 
 \hline
 \DWTAGpackedtype
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATalignment{} \\*
-&\DWATsibling{} \\*
+&\DWATname{} \\*
 &\DWATtype{} \\*
 
 \hline
 \DWTAGpartialunit
 &\DWATaddrbase{} \\*
 &\DWATbasetypes{}  \\*  
-&\DWATcompdir{}  \\
+&\DWATcompdir{}  \\*
 &\DWATdescription{}  \\
 &\DWATdwoid{} \\
 &\DWATdwoname{} \\
@@ -535,24 +501,25 @@ means include all three of the
 &\DWATranges{}  \\
 &\DWATrangesbase{} \\
 &\DWATsegment{}  \\
-&\DWATstmtlist{}  \\
-&\DWATstroffsetsbase{} \\
-&\DWATuseUTFeight{}  \\
+&\DWATstmtlist{}  \\*
+&\DWATstroffsetsbase{} \\*
+&\DWATuseUTFeight{}  \\*
 
 \hline
 \DWTAGpointertype
 &\livelink{chap:DECL}{DECL}  \\*
 &\DWATaddressclass{}  \\*
 &\DWATalignment{} \\*
-&\DWATsibling{} \\*
+&\DWATbitsize{} \\
+&\DWATbytesize \\*
+&\DWATname{} \\*
 &\DWATtype{} \\*
 
 \hline
 \DWTAGptrtomembertype
 &\livelink{chap:DECL}{DECL}  \\*
-&\DWATabstractorigin{}  \\*
 &\DWATaddressclass{}  \\*
-&\DWATalignment{} \\
+&\DWATalignment{} \\*
 &\DWATallocated{}  \\
 &\DWATassociated{}  \\
 &\DWATcontainingtype{}  \\
@@ -560,41 +527,42 @@ means include all three of the
 &\DWATdeclaration{}  \\
 &\DWATdescription{}  \\
 &\DWATname{}  \\
-&\DWATsibling{}  \\
-&\DWATtype{}  \\
-&\DWATuselocation{}  \\
-&\DWATvisibility{}  \\
+&\DWATtype{}  \\*
+&\DWATuselocation{}  \\*
+&\DWATvisibility{}  \\*
 
 \hline
 \DWTAGreferencetype
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATaddressclass{}  \\*
 &\DWATalignment{} \\*
-&\DWATsibling{} \\*
+&\DWATbitsize{} \\
+&\DWATbytesize \\*
+&\DWATname{} \\*
 &\DWATtype{} \\*
 
 \hline
 \DWTAGrestricttype
 &\livelink{chap:DECL}{DECL} \\*
 &\DWATalignment{} \\*
-&\DWATsibling{} \\*
+&\DWATname{} \\*
 &\DWATtype{} \\*
 
-
 \hline
 \DWTAGrvaluereferencetype
 &\livelink{chap:DECL}{DECL}  \\*
 &\DWATaddressclass{}  \\*
 &\DWATalignment{} \\*
-&\DWATsibling{}  \\*
+&\DWATbitsize{} \\
+&\DWATbytesize \\*
+&\DWATname{} \\*
 &\DWATtype{}  \\*
 
 \hline
 \DWTAGsettype
 &\livelink{chap:DECL}{DECL}  \\*
-&\DWATabstractorigin{}  \\*
 &\DWATaccessibility{}  \\*
-&\DWATalignment{} \\
+&\DWATalignment{} \\*
 &\DWATallocated{}  \\
 &\DWATassociated{}  \\
 &\DWATbitsize{}  \\
@@ -603,25 +571,23 @@ means include all three of the
 &\DWATdeclaration{}  \\
 &\DWATdescription{}  \\
 &\DWATname{}  \\
-&\DWATstartscope{}  \\
-&\DWATsibling{}  \\
-&\DWATtype{}  \\
-&\DWATvisibility{}  \\
+&\DWATstartscope{}  \\*
+&\DWATtype{}  \\*
+&\DWATvisibility{}  \\*
 
 \hline
 \DWTAGsharedtype
 &\livelink{chap:DECL}{DECL}  \\*
 &\DWATcount{}  \\*
 &\DWATalignment{} \\*
-&\DWATsibling{}  \\*
+&\DWATname{} \\*
 &\DWATtype{}  \\*
 
 \hline
 \DWTAGstringtype
 &\livelink{chap:DECL}{DECL}  \\*
-&\DWATabstractorigin{}  \\*
 &\DWATalignment{} \\*
-&\DWATaccessibility{}  \\
+&\DWATaccessibility{}  \\*
 &\DWATallocated{}  \\
 &\DWATassociated{}  \\
 &\DWATbitsize{}  \\
@@ -630,9 +596,8 @@ means include all three of the
 &\DWATdeclaration{}  \\
 &\DWATdescription{}  \\
 &\DWATname{}  \\
-&\DWATsibling{}  \\
 &\DWATstartscope{}  \\
-&\DWATstringlength{}  \\*
+&\DWATstringlength{}  \\
 &\DWATstringlengthbitsize{}  \\*
 &\DWATstringlengthbytesize{}  \\*
 &\DWATvisibility{}  \\*
@@ -640,9 +605,8 @@ means include all three of the
 \hline
 \DWTAGstructuretype
 &\livelink{chap:DECL}{DECL}  \\*
-&\DWATabstractorigin{}  \\*
 &\DWATaccessibility{}  \\*
-&\DWATalignment{} \\
+&\DWATalignment{} \\*
 &\DWATallocated{}  \\
 &\DWATassociated{}  \\
 &\DWATbitsize{}  \\
@@ -653,7 +617,6 @@ means include all three of the
 &\DWATdescription{}  \\
 &\DWATexportsymbols{} \\
 &\DWATname{}  \\
-&\DWATsibling{}  \\
 &\DWATsignature{}  \\
 &\DWATspecification{}  \\*
 &\DWATstartscope{}  \\*
@@ -662,9 +625,8 @@ means include all three of the
 \hline
 \DWTAGsubprogram
 &\livelink{chap:DECL}{DECL}  \\*
-&\DWATabstractorigin{}  \\*
 &\DWATaccessibility{}  \\*
-&\DWATaddressclass{}  \\
+&\DWATaddressclass{}  \\*
 &\DWATalignment{} \\
 &\DWATartificial{}  \\
 &\DWATcallingconvention{}  \\
@@ -693,7 +655,6 @@ means include all three of the
 &\DWATreturnaddr{}  \\
 &\DWATrvaluereference{} \\
 &\DWATsegment{}  \\
-&\DWATsibling{}  \\
 &\DWATspecification{}  \\
 &\DWATstartscope{}  \\
 &\DWATstaticlink{}  \\
@@ -706,9 +667,8 @@ means include all three of the
 \hline
 \DWTAGsubrangetype
 &\livelink{chap:DECL}{DECL}  \\*
-&\DWATabstractorigin{}  \\*
 &\DWATaccessibility{}  \\*
-&\DWATalignment{} \\
+&\DWATalignment{} \\*
 &\DWATallocated{}  \\
 &\DWATassociated{}  \\
 &\DWATbitsize{}  \\
@@ -721,18 +681,16 @@ means include all three of the
 &\DWATdescription{}  \\
 &\DWATlowerbound{}  \\
 &\DWATname{}  \\
-&\DWATsibling{}  \\
 &\DWATthreadsscaled{}  \\
 &\DWATtype{}  \\*
 &\DWATupperbound{}  \\*
-&\DWATvisibility{}  \\
+&\DWATvisibility{}  \\*
 
 \hline
 \DWTAGsubroutinetype
 &\livelink{chap:DECL}{DECL}  \\*
-&\DWATabstractorigin{}  \\*
 &\DWATaccessibility{}  \\*
-&\DWATaddressclass{}  \\
+&\DWATaddressclass{}  \\*
 &\DWATalignment{} \\
 &\DWATallocated{}  \\
 &\DWATassociated{}  \\
@@ -743,23 +701,20 @@ means include all three of the
 &\DWATprototyped{}  \\
 &\DWATreference{} \\
 &\DWATrvaluereference{} \\
-&\DWATsibling{}  \\
-&\DWATstartscope{}  \\
-&\DWATtype{}  \\
-&\DWATvisibility{}  \\
+&\DWATstartscope{}  \\*
+&\DWATtype{}  \\*
+&\DWATvisibility{}  \\*
 
 \hline
 \DWTAGtemplatealias
-&\livelink{chap:DECL}{DECL}   \\
-&\DWATabstractorigin{}   \\
-&\DWATaccessibility{}   \\
-&\DWATallocated{}   \\
+&\livelink{chap:DECL}{DECL}   \\*
+&\DWATaccessibility{}   \\*
+&\DWATallocated{}   \\*
 &\DWATassociated{}   \\
 &\DWATdatalocation{}   \\
 &\DWATdeclaration{}   \\
 &\DWATdescription{}   \\
 &\DWATname{}   \\
-&\DWATsibling{}   \\
 &\DWATsignature{}   \\
 &\DWATstartscope{}   \\*
 &\DWATtype{}   \\*
@@ -767,21 +722,19 @@ means include all three of the
 
 \hline
 \DWTAGtemplatetypeparameter
-&\livelink{chap:DECL}{DECL}   \\
-&\DWATdefaultvalue{}   \\
-&\DWATdescription{}   \\
+&\livelink{chap:DECL}{DECL}   \\*
+&\DWATdefaultvalue{}   \\*
+&\DWATdescription{}   \\*
 &\DWATname{}      \\*
-&\DWATsibling{}   \\*
 &\DWATtype{}      \\*
 
 \hline
 \DWTAGtemplatevalueparameter{} 
-&\livelink{chap:DECL}{DECL}   \\
-&\DWATconstvalue{}   \\
-&\DWATdefaultvalue{}   \\
-&\DWATdescription{}   \\
+&\livelink{chap:DECL}{DECL}   \\*
+&\DWATconstvalue{}   \\*
+&\DWATdefaultvalue{}   \\*
+&\DWATdescription{}   \\*
 &\DWATname{}   \\*
-&\DWATsibling{}   \\*
 &\DWATtype{}   \\*
 
 \hline
@@ -790,37 +743,33 @@ means include all three of the
 &\DWATalignment{} \\*
 &\DWATallocated{}   \\*
 &\DWATassociated{}   \\
-&\DWATdatalocation{}   \\
-&\DWATsibling{}   \\
-&\DWATtype{}   \\
+&\DWATdatalocation{}   \\*
+&\DWATname{} \\*
+&\DWATtype{}   \\*
 
 \hline
 \DWTAGtryblock
-&\livelink{chap:DECL}{DECL}   \\
-&\DWATabstractorigin{}   \\
-&\DWATentrypc{} \\
-&\DWAThighpc{}   \\
-&\DWATlowpc{}   \\
-&\DWATranges{}   \\
-&\DWATsegment{}   \\
-&\DWATsibling{}   \\
+&\livelink{chap:DECL}{DECL}   \\*
+&\DWATentrypc{} \\*
+&\DWAThighpc{}   \\*
+&\DWATlowpc{}   \\*
+&\DWATranges{}   \\*
+&\DWATsegment{}   \\*
 
 \hline
 \DWTAGtypedef
 &\livelink{chap:DECL}{DECL}   \\*
-&\DWATabstractorigin{}   \\*
 &\DWATaccessibility{}   \\*
-&\DWATalignment{} \\
+&\DWATalignment{} \\*
 &\DWATallocated{}   \\
 &\DWATassociated{}   \\
 &\DWATdatalocation{}   \\
 &\DWATdeclaration{}   \\
 &\DWATdescription{}   \\
 &\DWATname{}   \\
-&\DWATsibling{}   \\
-&\DWATstartscope{}   \\
-&\DWATtype{}   \\
-&\DWATvisibility{}   \\
+&\DWATstartscope{}   \\*
+&\DWATtype{}   \\*
+&\DWATvisibility{}   \\*
 
 \hline
 \DWTAGtypeunit
@@ -832,9 +781,8 @@ means include all three of the
 \hline
 \DWTAGuniontype
 &\livelink{chap:DECL}{DECL}   \\*
-&\DWATabstractorigin{}   \\*
 &\DWATaccessibility{}   \\*
-&\DWATalignment{} \\
+&\DWATalignment{} \\*
 &\DWATallocated{}   \\
 &\DWATassociated{}   \\
 &\DWATbitsize{}   \\
@@ -845,7 +793,6 @@ means include all three of the
 &\DWATdescription{}   \\
 &\DWATexportsymbols{} \\
 &\DWATname{}   \\
-&\DWATsibling{}   \\
 &\DWATsignature{}   \\
 &\DWATspecification{}   \\*
 &\DWATstartscope{}   \\*
@@ -853,23 +800,20 @@ means include all three of the
 
 \hline
 \DWTAGunspecifiedparameters
-&\livelink{chap:DECL}{DECL}   \\
-&\DWATabstractorigin{}   \\
-&\DWATartificial{}   \\
-&\DWATsibling{}   \\
+&\livelink{chap:DECL}{DECL}   \\*
+&\DWATartificial{}   \\*
 
 \hline
 \DWTAGunspecifiedtype
-&\livelink{chap:DECL}{DECL}   \\
-&\DWATdescription{}   \\
-&\DWATname{}    \\
+&\livelink{chap:DECL}{DECL}   \\*
+&\DWATdescription{}   \\*
+&\DWATname{}    \\*
 
 \hline
 \DWTAGvariable
 &\livelink{chap:DECL}{DECL}    \\*
-&\DWATabstractorigin{}    \\*
 &\DWATaccessibility{}    \\*
-&\DWATalignment{}     \\
+&\DWATalignment{}     \\*
 &\DWATartificial{}    \\
 &\DWATconstexpr{}    \\
 &\DWATconstvalue{}    \\
@@ -881,36 +825,31 @@ means include all three of the
 &\DWATlocation{}    \\
 &\DWATname{}    \\
 &\DWATsegment{}    \\
-&\DWATsibling{}    \\
 &\DWATspecification{}    \\
-&\DWATstartscope{}    \\
-&\DWATtype{}    \\
-&\DWATvisibility{}    \\
+&\DWATstartscope{}    \\*
+&\DWATtype{}    \\*
+&\DWATvisibility{}    \\*
 
 \hline
 \DWTAGvariant
-&\livelink{chap:DECL}{DECL}    \\
-&\DWATaccessibility{}   \\
-&\DWATabstractorigin{}   \\
-&\DWATdeclaration{}   \\
+&\livelink{chap:DECL}{DECL}    \\*
+&\DWATaccessibility{}   \\*
+&\DWATdeclaration{}   \\*
 &\DWATdiscrlist{}   \\*
 &\DWATdiscrvalue{}   \\*
-&\DWATsibling{}   \\*
 
 \hline
 \DWTAGvariantpart
 &\livelink{chap:DECL}{DECL}   \\*
-&\DWATabstractorigin{}   \\*
 &\DWATaccessibility{}   \\*
-&\DWATdeclaration{}   \\
+&\DWATdeclaration{}   \\*
 &\DWATdiscr{}   \\*
-&\DWATsibling{} \\*
 &\DWATtype{}    \\*
 
 \hline
 \DWTAGvolatiletype{}  
 &\livelink{chap:DECL}{DECL}   \\*
-&\DWATsibling{}    \\*
+&\DWATname{} \\*
 &\DWATtype{}    \\*
 
 \hline
@@ -919,12 +858,13 @@ means include all three of the
 &\DWATaddressclass{}    \\*
 &\DWATdeclaration{}    \\*
 &\DWATentrypc{} \\*
-&\DWAThighpc{}    \\*
-&\DWATlocation{}    \\*
-&\DWATlowpc{}    \\*
+&\DWAThighpc{}    \\
+&\DWATlocation{}    \\
+&\DWATlowpc{}    \\
 &\DWATranges{}    \\*
 &\DWATsegment{}    \\*
-&\DWATsibling{}    \\*
 &\DWATtype{}    \\*
 &\DWATvisibility{}    \\*
 \end{longtable}
+
+\normalsize
\ No newline at end of file
index 094e578..de9e40d 100644 (file)
@@ -15,6 +15,7 @@ This change summary is included only in draft versions of this document.
 \begin{longtable}{ll}
 \textbf{Date}  & \textbf{Issue Incorporated or Other Change}   \\ \hline       \\
 \endhead
+4/24-26/2015    & More editorial work \\
 4/4-23/2015     & Editorial changes from Committee review \\
 3/3/2015        & 150108.1 (accelerated access) \\
 3/1/2015        & 141215.2 (deleted member functions), 141215.3 (defaulted member functions) \\
index b9bdce4..389d38e 100644 (file)
@@ -28,9 +28,8 @@ formal parameter or constant may have the following attributes:
 \begin{enumerate}[1. ]
 \item A \DWATname{} attribute,
 \addtoindexx{name attribute}
-whose value of class \CLASSstring{} describes a null-terminated
-string for the data object name as it appears in the
-source program.
+whose value is a null-terminated string containing the data object 
+name as it appears in the source program.
 
 If a variable entry describes an 
 \addtoindex{anonymous union},
@@ -77,6 +76,10 @@ specified modifies the location specified by the defining declaration and only a
 scope of the variable entry; if no location is specified, then the location specified in the
 defining declaration applies.
 
+\textit{This can occur, for example, for a \addtoindex{C} or \addtoindex{C++}
+external variable (one that is defined and allocated in another compilation unit) 
+and whose location varies in the current unit due to optimization.}
+
 The location of a variable may be further specified with 
 \addtoindexx{segment attribute!and data segment}
 a 
@@ -113,6 +116,7 @@ type of the data member whose definition they
 \hypertarget{chap:DWATvariableparameternonconstantparameterflag}{}
 represent.
 
+\needlines{4}
 \item A \DWATvariableparameter{}
 attribute\addtoindexx{variable parameter attribute}, 
 which is a \livelink{chap:classflag}{flag},
@@ -274,7 +278,7 @@ the target architecture's ABI or processor definition. The
 exact definition of these formats may differ in subtle ways
 for different architectures.
 
-
+\needlines{6}
 \item A \DWATconstexpr{} attribute, 
 which 
 \hypertarget{chap:DWATconstexprcompiletimeconstantobject}{}
@@ -307,10 +311,9 @@ tag \DWTAGcommonblockTARG.
 The common \nolink{block} 
 entry has a \DWATname{} attribute 
 \addtoindexx{name attribute}
-whose value of class \CLASSstring{} describes a null-terminated
-string for the
-\livetargi{chap:commonblockreferenceattribute}{common}{common block reference attribute} 
-\nolink{block}
+whose value is a null-terminated
+string containing the
+\livetargi{chap:commonblockreferenceattribute}{common \nolink{block}}{common block reference attribute} 
 name as it appears in the source program. It may also have a
 \DWATlinkagename{} attribute as described in 
 Section \refersec{chap:linkagenames}. 
@@ -327,6 +330,7 @@ the variables contained within the common \nolink{block}.
 \textit{\addtoindex{Fortran} allows each declarer of a common block 
 to independently define its contents; thus, common blocks are not types.}
 
+\needlines{8}
 \section{Namelist Entries}
 \label{chap:namelistentries}
 \textit{At least one language, Fortran 90, has the concept of a
@@ -341,8 +345,8 @@ tag \DWTAGnamelistTARG.
 If the namelist itself has a
 name, the namelist entry has a \DWATname{} attribute,
 \addtoindexx{name attribute}
-whose value of class \CLASSstring{} describes a null-terminated
-string for the namelist\textquoteright s
+whose value is a null-terminated
+string containing the namelist\textquoteright{}s
 name as it appears in the source program.
 
 Each 
index d28f9a5..ca9892b 100644 (file)
@@ -277,9 +277,11 @@ units, in the \dotdebugabbrevdwo{} section.
 \item Location lists, in the \dotdebuglocdwo{} section.
 
 \item
-A skeleton line number table (for the type units), in the
-\dotdebuglinedwo{} section (see 
-Section \refersec{chap:skeletoncompilationunitentries}).
+A \addtoindex{specialized line number table} (for the type units), 
+in the \dotdebuglinedwo{} section. This table
+contains only the directory and filename lists needed to
+interpret \DWATdeclfile{} attributes in the debugging
+information entries.
 
 \item Macro information, in the \dotdebugmacrodwo{} section.
 
@@ -410,29 +412,48 @@ a table of sizes. The index sections are aligned at 8-byte
 boundaries in the file.
 
 \needlines{6}
-The index section header contains four unsigned 32-bit values:
-%(using the byte order of the application binary):
-\begin{itemize}
-\item The \addtoindexi{version number}{version number!package index tables}
- of the format of this index (currently \versiondotdebugcuindex)
-\item L, the number of columns in the table of section offsets
-\item N, the number of compilation units or type units in the index
-\item M, the number of slots in the hash table
-\end{itemize}
+The index section header contains the following fields:
+\begin{enumerate}[1. ]
+\item \texttt{version} (\HFTuhalf) \\
+A version number
+\addtoindexx{version number!CU index information} 
+\addtoindexx{version number!TU index information}
+(see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
+This number is specific to the CU and TU index information
+and is independent of the DWARF version number.
+
+The version number is \versiondotdebugcuindex.
+
+\item \textit{padding} (\HFTuhalf) \\
+Reserved to DWARF.
+
+\item \texttt{column\_count} (\HFTuword) \\
+The number of columns in the table of section counts that follows.
+For brevity, the contents of this field is referred to as $C$ below.
+
+\item \texttt{unit\_count} (\HFTuword) \\
+The number of compilation units or type units in the index.
+For brevity, the contents of this field is referred to as $U$ below.
 
-\textit{We assume that N and M will not exceed $2^{32}$.}
+\item \texttt{slot\_count} (\HFTuword) \\
+The number of slots in the hash table.
+For brevity, the contents of this field is referred to as $S$ below.
 
-The size of the hash table, M, must be $2^k$ such that:
-\hspace{0.3cm}$2^k\ \ >\ \ 3*N/2$
+\end{enumerate}
+
+\textit{We assume that $U$ and $S$ do not exceed $2^{32}$.}
+
+The size of the hash table, $S$, must be $2^k$ such that:
+\hspace{0.3cm}$2^k\ \ >\ \ 3*U/2$
 
 The hash table begins at offset 16 in the section, and consists
-of an array of M 64-bit slots. Each slot contains a 64-bit
+of an array of $M$ 64-bit slots. Each slot contains a 64-bit
 signature.
 % (using the byte order of the application binary).
 
 The parallel table of indices begins immediately after the hash table 
-(at offset \mbox{16 + 8 * M} from the beginning of the section), and
-consists of an array of M 32-bit slots,
+(at offset \mbox{$16 + 8 * S$} from the beginning of the section), and
+consists of an array of $M$ 32-bit slots,
 % (using the byte order of the application binary), 
 corresponding 1-1 with slots in the hash
 table. Each entry in the parallel table contains a row index into
@@ -442,30 +463,31 @@ Unused slots in the hash table have 0 in both the hash table
 entry and the parallel table entry. While 0 is a valid hash
 value, the row index in a used slot will always be non-zero.
 
-Given a 64-bit compilation unit signature or a type signature S,
+Given a 64-bit compilation unit signature or a type signature $X$,
 an entry in the hash table is located as follows:
 \begin{enumerate}[1. ]
-\item Calculate a primary hash $H = S\ \&\ MASK(k)$, where $MASK(k)$ is a
-    mask with the low-order k bits all set to 1.
+\item Calculate a primary hash $H = X\ \&\ MASK(k)$, where $MASK(k)$ is a
+    mask with the low-order $k$ bits all set to 1.
 
-\item Calculate a secondary hash $H' = (((S>>32)\ \&\ MASK(k))\ |\ 1)$.
+\item Calculate a secondary hash $H' = (((X>>32)\ \&\ MASK(k))\ |\ 1)$.
 
-\item If the hash table entry at index H matches the signature, use
-    that entry. If the hash table entry at index H is unused (all
+\item If the hash table entry at index $H$ matches the signature, use
+    that entry. If the hash table entry at index $H$ is unused (all
     zeroes), terminate the search: the signature is not present
     in the table.
 
 \item Let $H = (H + H')\ modulo\ M$. Repeat at Step 3.
 \end{enumerate}
 
-Because $M > N$, and H' and M are relatively prime, the search is
+Because $M > U$, and $H'$ and $M$ are relatively prime, the search is
 guaranteed to stop at an unused slot or find the match.
 
 \needlines{4}
 The table of offsets begins immediately following the parallel
-table (at offset \mbox{16 + 12 * M} from the beginning of the section).
-The table is a two-dimensional array of 32-bit words (using the
-byte order of the application binary), with L columns and N+1
+table (at offset \mbox{$16 + 12 * S$} from the beginning of the section).
+The table is a two-dimensional array of 32-bit words, 
+%(using the byte order of the application binary), 
+with $C$ columns and $U + 1$
 rows, in row-major order. Each row in the array is indexed
 starting from 0. The first row provides a key to the columns:
 each column in this row provides a section identifier for a debug
@@ -473,6 +495,7 @@ section, and the offsets in the same column of subsequent rows
 refer to that section. The section identifiers are shown in
 Table \referfol{tab:dwarfpackagefilesectionidentifierencodings}.
 
+\needlines{12}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|c|l}
@@ -515,7 +538,7 @@ The table of sizes begins immediately following the table of
 offsets, and provides the sizes of the contributions made by each
 CU or TU to the corresponding section in the package file. Like
 the table of offsets, it is a two-dimensional array of 32-bit
-words, with L columns and N rows, in row-major order. Each row in
+words, with $C$ columns and $U$ rows, in row-major order. Each row in
 the array is indexed starting from 1 (row 0 of the table of
 offsets also serves as the key for the table of sizes).
 
@@ -528,6 +551,7 @@ several executables or shared objects into a separate
 post-linking utility; the moved entries and strings can be then referenced
 from the debugging information of each of those executables or shared objects.
 
+\needlines{4}
 A DWARF supplementary object file is itself an object file, using the same object
 file format, byte order, and size as the corresponding application executables
 or shared libraries. It consists only of a file header, section table, and
@@ -537,13 +561,13 @@ file must contain a \dotdebugsup{} section that establishes the relationship.
 
 The \dotdebugsup{} section contains:
 \begin{enumerate}[1. ]
-\item \texttt{version} (uhalf) \\
+\item \texttt{version} (\HFTuhalf) \\
 \addttindexx{version}
 A 2-byte unsigned integer representing the version of the DWARF
 information for the compilation unit (see Appendix G). The
 value in this field is \versiondotdebugsup.
 
-\item \texttt{is\_supplementary} (ubyte) \\
+\item \texttt{is\_supplementary} (\HFTubyte) \\
 \addttindexx{is\_supplementary}
 A 1-byte unsigned integer, which contains the value 1 if it is
 in the \addtoindex{supplementary object file} that other executables or 
@@ -566,7 +590,7 @@ Length of the following \addttindex{sup\_checksum} field;
 his value can be 0 if no checksum is provided.
 
 
-\item \texttt{sup\_checksum} (array of ubyte) \\
+\item \texttt{sup\_checksum} (array of \HFTubyte) \\
 \addttindexx{sup\_checksum}
 Some checksum or cryptographic hash function of the \dotdebuginfo{}, 
 \dotdebugstr{} and \dotdebugmacro{} sections of the 
@@ -608,41 +632,41 @@ the executable or shared object."
 \hypertarget{datarep:xxbitdwffmt}{}
 \addtoindexx{32-bit DWARF format}
 \addtoindexx{64-bit DWARF format}
-There are two closely related file formats. In the 32\dash bit DWARF
+There are two closely related file formats. In the 32-bit DWARF
 format, all values that represent lengths of DWARF sections
 and offsets relative to the beginning of DWARF sections are
-represented using 32\dash bits. In the 64\dash bit DWARF format, all
+represented using 32-bits. In the 64-bit DWARF format, all
 values that represent lengths of DWARF sections and offsets
 relative to the beginning of DWARF sections are represented
-using 64\dash bits. A special convention applies to the initial
+using 64-bits. A special convention applies to the initial
 length field of certain DWARF sections, as well as the CIE and
-FDE structures, so that the 32\dash bit and 64\dash bit DWARF formats
+FDE structures, so that the 32-bit and 64-bit DWARF formats
 can coexist and be distinguished within a single linked object.
 
-The differences between the 32\dash\   and 64\dash bit 
-DWARF formats are
+The differences between the 32- and 64-bit DWARF formats are
 detailed in the following:
 \begin{enumerate}[1. ]
 
-\item  In the 32\dash bit DWARF format, an 
+\item  In the 32-bit DWARF format, an 
 \addtoindex{initial length} field (see 
 \addtoindexx{initial length!encoding}
 Section \ref{datarep:initiallengthvalues} on page \pageref{datarep:initiallengthvalues})
-is an unsigned 32\dash bit integer (which
-must be less than \xfffffffzero); in the 64\dash bit DWARF format,
+is an unsigned 32-bit integer (which
+must be less than \xfffffffzero); in the 64-bit DWARF format,
 an \addtoindex{initial length} field is 96 bits in size,
 and has two parts:
 \begin{itemize}
-\item The first 32\dash bits have the value \xffffffff.
+\item The first 32-bits have the value \xffffffff.
 
-\item  The following 64\dash bits contain the actual length
-represented as an unsigned 64\dash bit integer.
+\item  The following 64-bits contain the actual length
+represented as an unsigned 64-bit integer.
 \end{itemize}
 
 \textit{This representation allows a DWARF consumer to dynamically
-detect that a DWARF section contribution is using the 64\dash bit
+detect that a DWARF section contribution is using the 64-bit
 format and to adapt its processing accordingly.}
 
+\needlines{4}
 \item Section offset and section length
 \hypertarget{datarep:sectionoffsetlength}{} 
 \addtoindexx{section length!use in headers}
@@ -650,9 +674,9 @@ fields that occur
 \addtoindexx{section offset!use in headers}
 in the headers of DWARF sections (other than initial length
 \addtoindexx{initial length}
-fields) are listed following. In the 32\dash bit DWARF format these
-are 32\dash bit unsigned integer values; in the 64\dash bit DWARF format,
-they are 64\dash bit unsigned integer values.
+fields) are listed following. In the 32-bit DWARF format these
+are 32-bit unsigned integer values; in the 64-bit DWARF format,
+they are 64-bit unsigned integer values.
 
 \begin{center}
 \begin{tabular}{lll}
@@ -676,9 +700,9 @@ each other (both offset and size).
 
 \item Within the body of the \dotdebuginfo{}
 section, certain forms of attribute value depend on the choice
-of DWARF format as follows. For the 32\dash bit DWARF format,
-the value is a 32\dash bit unsigned integer; for the 64\dash bit DWARF
-format, the value is a 64\dash bit unsigned integer.
+of DWARF format as follows. For the 32-bit DWARF format,
+the value is a 32-bit unsigned integer; for the 64-bit DWARF
+format, the value is a 64-bit unsigned integer.
 \begin{center}
 \begin{tabular}{lp{6cm}}
 Form             & Role  \\ \hline
@@ -712,8 +736,8 @@ compilation units (CUs) and the array of local type units
 (TUs), which represents an offset in the 
 \dotdebuginfo{}
 section, depends on the DWARF format as follows: in the
-32\dash bit DWARF format, each entry is a 32\dash bit unsigned integer;
-in the 64\dash bit DWARF format, it is a 64\dash bit unsigned integer.
+32-bit DWARF format, each entry is a 32-bit unsigned integer;
+in the 64-bit DWARF format, it is a 64-bit unsigned integer.
 
 \needlines{4}
 \item In the body of the \dotdebugstroffsets{} and \dotdebugstroffsetsdwo{}
@@ -729,31 +753,31 @@ contain 4; in the 64-bit DWARF format these fields contain 8.
 \end{enumerate}
 
 
-The 32\dash bit and 64\dash bit DWARF format conventions must \emph{not} be
+The 32-bit and 64-bit DWARF format conventions must \emph{not} be
 intermixed within a single compilation unit.
 
 \textit{Attribute values and section header fields that represent
 addresses in the target program are not affected by these
 rules.}
 
-A DWARF consumer that supports the 64\dash bit DWARF format must
+A DWARF consumer that supports the 64-bit DWARF format must
 support executables in which some compilation units use the
-32\dash bit format and others use the 64\dash bit format provided that
+32-bit format and others use the 64-bit format provided that
 the combination links correctly (that is, provided that there
 are no link\dash time errors due to truncation or overflow). (An
 implementation is not required to guarantee detection and
 reporting of all such errors.)
 
 \textit{It is expected that DWARF producing compilers will \emph{not} use
-the 64\dash bit format \emph{by default}. In most cases, the division of
+the 64-bit format \emph{by default}. In most cases, the division of
 even very large applications into a number of executable and
 shared objects will suffice to assure that the DWARF sections
 within each individual linked object are less than 4 GBytes
-in size. However, for those cases where needed, the 64\dash bit
+in size. However, for those cases where needed, the 64-bit
 format allows the unusual case to be handled as well. Even
 in this case, it is expected that only application supplied
-objects will need to be compiled using the 64\dash bit format;
-separate 32\dash bit format versions of system supplied shared
+objects will need to be compiled using the 64-bit format;
+separate 32-bit format versions of system supplied shared
 executable libraries can still be used.}
 
 
@@ -831,27 +855,27 @@ enumeration are shown in Table \refersec{tab:unitheaderunitkindencodings}.
 
 \item \texttt{unit\_length} (\livelink{datarep:initiallengthvalues}{initial length}) \\
 \addttindexx{unit\_length}
-A 4\dash byte or 12\dash byte 
+A 4-byte or 12-byte 
 \addtoindexx{initial length}
 unsigned integer representing the length
 of the \dotdebuginfo{}
 contribution for that compilation unit,
 not including the length field itself. In the \thirtytwobitdwarfformat,
- this is a 4\dash byte unsigned integer (which must be less
+ this is a 4-byte unsigned integer (which must be less
 than \xfffffffzero); in the \sixtyfourbitdwarfformat, this consists
-of the 4\dash byte value \wffffffff followed by an 8\dash byte unsigned
+of the 4-byte value \wffffffff followed by an 8-byte unsigned
 integer that gives the actual length 
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
-\item  \texttt{version} (\addtoindex{uhalf}) \\
+\item  \texttt{version} (\HFTuhalf) \\
 \addttindexx{version}
-A 2\dash byte unsigned integer representing the version of the
+A 2-byte unsigned integer representing the version of the
 DWARF information for the compilation unit \addtoindexx{version number!compilation unit} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 The value in this field is \versiondotdebuginfo.
 
 \needlines{4}
-\item \texttt{unit\_type} (\addtoindex{ubyte}) \\
+\item \texttt{unit\_type} (\HFTubyte) \\
 \addttindexx{unit\_type}
 A 1-byte unsigned integer identifying this unit as a compilation unit.
 The value of this field is 
@@ -866,17 +890,17 @@ The value of this field is
 \addttindexx{debug\_abbrev\_offset}
 A 
 \addtoindexx{section offset!in .debug\_info header}
-4\dash byte or 8\dash byte unsigned offset into the 
+4-byte or 8-byte unsigned offset into the 
 \dotdebugabbrev{}
 section. This offset associates the compilation unit with a
 particular set of debugging information entry abbreviations. In
-the \thirtytwobitdwarfformat, this is a 4\dash byte unsigned length;
-in the \sixtyfourbitdwarfformat, this is an 8\dash byte unsigned length
+the \thirtytwobitdwarfformat, this is a 4-byte unsigned length;
+in the \sixtyfourbitdwarfformat, this is an 8-byte unsigned length
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
-\item \texttt{address\_size} (\addtoindex{ubyte}) \\
+\item \texttt{address\_size} (\HFTubyte) \\
 \addttindexx{address\_size}
-A 1\dash byte unsigned integer representing the size in bytes of
+A 1-byte unsigned integer representing the size in bytes of
 an address on the target architecture. If the system uses
 \addtoindexx{address space!segmented}
 segmented addressing, this value represents the size of the
@@ -896,27 +920,27 @@ consists of the following information:
 
 \item \texttt{unit\_length} (\livelink{datarep:initiallengthvalues}{initial length}) \\
 \addttindexx{unit\_length}
-A 4\dash byte or 12\dash byte unsigned integer 
+A 4-byte or 12-byte unsigned integer 
 \addtoindexx{initial length}
 representing the length
 of the \dotdebuginfo{} contribution for that type unit,
 not including the length field itself. In the \thirtytwobitdwarfformat, 
-this is a 4\dash byte unsigned integer (which must be
+this is a 4-byte unsigned integer (which must be
 less than \xfffffffzero); in the \sixtyfourbitdwarfformat, this
-consists of the 4\dash byte value \wffffffff followed by an 
-8\dash byte unsigned integer that gives the actual length
+consists of the 4-byte value \wffffffff followed by an 
+8-byte unsigned integer that gives the actual length
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \needlines{4}
-\item  \texttt{version} (\addtoindex{uhalf}) \\
+\item  \texttt{version} (\HFTuhalf) \\
 \addttindexx{version}
-A 2\dash byte unsigned integer representing the version of the
+A 2-byte unsigned integer representing the version of the
 DWARF information for the 
 type unit\addtoindexx{version number!type unit} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 The value in this field is \versiondotdebuginfo.
 
-\item \texttt{unit\_type} (\addtoindex{ubyte}) \\
+\item \texttt{unit\_type} (\HFTubyte) \\
 \addttindexx{unit\_type}
 A 1-byte unsigned integer identifying this unit as a type unit.
 The value of this field is \DWUTtype{} for a type unit
@@ -929,18 +953,18 @@ The value of this field is \DWUTtype{} for a type unit
 \addttindexx{debug\_abbrev\_offset}
 A 
 \addtoindexx{section offset!in .debug\_info header}
-4\dash byte or 8\dash byte unsigned offset into the 
+4-byte or 8-byte unsigned offset into the 
 \dotdebugabbrev{}
 section. This offset associates the type unit with a
 particular set of debugging information entry abbreviations. In
-the \thirtytwobitdwarfformat, this is a 4\dash byte unsigned length;
-in the \sixtyfourbitdwarfformat, this is an 8\dash byte unsigned length
+the \thirtytwobitdwarfformat, this is a 4-byte unsigned length;
+in the \sixtyfourbitdwarfformat, this is an 8-byte unsigned length
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \needlines{4}
-\item \texttt{address\_size} (\addtoindex{ubyte}) \\
+\item \texttt{address\_size} (\HFTubyte) \\
 \addttindexx{address\_size}
-A 1\dash byte unsigned integer representing the size 
+A 1-byte unsigned integer representing the size 
 \addtoindexx{size of an address}
 in bytes of
 an address on the target architecture. If the system uses
@@ -948,10 +972,10 @@ an address on the target architecture. If the system uses
 segmented addressing, this value represents the size of the
 offset portion of an address.
 
-\item \texttt{type\_signature} (8\dash byte unsigned integer) \\
+\item \texttt{type\_signature} (8-byte unsigned integer) \\
 \addttindexx{type\_signature}
 \addtoindexx{type signature}
-A 64\dash bit unique signature (see Section 
+A 64-bit unique signature (see Section 
 \refersec{datarep:typesignaturecomputation})
 of the type described in this type
 unit.  
@@ -963,7 +987,7 @@ the primary type contained in this
 
 \item \texttt{type\_offset} (\livelink{datarep:sectionoffsetlength}{section offset}) \\
 \addttindexx{type\_offset}
-A 4\dash byte or 8\dash byte unsigned offset 
+A 4-byte or 8-byte unsigned offset 
 \addtoindexx{section offset!in .debug\_info header}
 relative to the beginning
 of the \addtoindex{type unit} header.
@@ -973,8 +997,8 @@ may be nested inside a namespace or other structures, and may
 contain references to other types that have not been placed in
 separate type units, it is not necessarily either the first or
 the only entry in the type unit. In the \thirtytwobitdwarfformat,
-this is a 4\dash byte unsigned length; in the \sixtyfourbitdwarfformat,
-this is an 8\dash byte unsigned length
+this is a 4-byte unsigned length; in the \sixtyfourbitdwarfformat,
+this is an 8-byte unsigned length
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \end{enumerate}
@@ -1105,13 +1129,13 @@ Table \refersec{tab:tagencodings}.
 \end{longtable}
 \end{centering}
 
-Following the tag encoding is a 1\dash byte value that determines
+Following the tag encoding is a 1-byte value that determines
 whether a debugging information entry using this abbreviation
 has child entries or not. If the value is 
 \DWCHILDRENyesTARG,
 the next physically succeeding entry of any debugging
 information entry using this abbreviation is the first
-child of that entry. If the 1\dash byte value following the
+child of that entry. If the 1-byte value following the
 abbreviation\textquoteright s tag encoding is 
 \DWCHILDRENnoTARG, the next
 physically succeeding entry of any debugging information entry
@@ -1180,445 +1204,12 @@ Appendix \refersec{app:compilationunitsandabbreviationstableexample}
 for a depiction of the organization of the
 debugging information.}
 
-
+\needlines{12}
 \subsection{Attribute Encodings}
 \label{datarep:attributeencodings}
 
 The encodings for the attribute names are given in 
-Table \refersec{tab:attributeencodings}.
-
-The attribute form governs how the value of the attribute is
-encoded. There are nine classes of form, listed below. Each
-class is a set of forms which have related representations
-and which are given a common interpretation according to the
-attribute in which the form is used.
-
-Form \DWFORMsecoffsetTARG{} 
-is a member of more 
-\addtoindexx{rangelistptr class}
-than 
-\addtoindexx{macptr class}
-one 
-\addtoindexx{loclistptr class}
-class,
-\addtoindexx{lineptr class}
-namely 
-\CLASSaddrptr, 
-\CLASSlineptr, 
-\CLASSloclistptr, 
-\CLASSmacptr,  
-\CLASSrangelistptr{} or
-\CLASSstroffsetsptr; 
-the list of classes allowed by the applicable attribute in 
-Table \refersec{tab:attributeencodings}
-determines the class of the form.
-
-
-\needlines{4}
-Each possible form belongs to one or more of the following classes:
-
-\begin{itemize}
-\item \livelinki{chap:classaddress}{address}{address class} \\
-\livetarg{datarep:classaddress}{}
-Represented as either:
-\begin{itemize}
-\item An object of appropriate size to hold an
-address on the target machine 
-(\DWFORMaddrTARG). 
-The size is encoded in the compilation unit header 
-(see Section \refersec{datarep:compilationunitheader}).
-This address is relocatable in a relocatable object file and
-is relocated in an executable file or shared object.
-
-\item An indirect index into a table of addresses (as 
-described in the previous bullet) in the
-\dotdebugaddr{} section (\DWFORMaddrxTARG). 
-The representation of a \DWFORMaddrxNAME{} value is an unsigned
-\addtoindex{LEB128} value, which is interpreted as a zero-based 
-index into an array of addresses in the \dotdebugaddr{} section.
-The index is relative to the value of the \DWATaddrbase{} attribute 
-of the associated compilation unit.
-\end{itemize}
-
-\needlines{5}
-\item \livelink{chap:classaddrptr}{addrptr} \\
-\livetarg{datarep:classaddrptr}{}
-This is an offset into the \dotdebugaddr{} section (\DWFORMsecoffset). It
-consists of an offset from the beginning of the \dotdebugaddr{} section to the
-beginning of the list of machine addresses information for the
-referencing entity. It is relocatable in
-a relocatable object file, and relocated in an executable or
-shared object. In the \thirtytwobitdwarfformat, this offset
-is a 4\dash byte unsigned value; in the 64\dash bit DWARF
-format, it is an 8\dash byte unsigned value (see Section
-\refersec{datarep:32bitand64bitdwarfformats}).
-
-\textit{This class is new in \DWARFVersionV.}
-
-\needlines{4}
-\item \livelink{chap:classblock}{block} \\
-\livetarg{datarep:classblock}{}
-Blocks come in four forms:
-
-\begin{myindentpara}{1cm}
-A 1\dash byte length followed by 0 to 255 contiguous information
-bytes (\DWFORMblockoneTARG).
-\end{myindentpara}
-
-\begin{myindentpara}{1cm}
-A 2\dash byte length followed by 0 to 65,535 contiguous information
-bytes (\DWFORMblocktwoTARG).
-\end{myindentpara}
-
-\begin{myindentpara}{1cm}
-A 4\dash byte length followed by 0 to 4,294,967,295 contiguous
-information bytes (\DWFORMblockfourTARG).
-\end{myindentpara}
-
-\begin{myindentpara}{1cm}
-An unsigned LEB128\addtoindexx{LEB128!unsigned}
-length followed by the number of bytes
-specified by the length (\DWFORMblockTARG).
-\end{myindentpara}
-
-In all forms, the length is the number of information bytes
-that follow. The information bytes may contain any mixture
-of relocated (or relocatable) addresses, references to other
-debugging information entries or data bytes.
-
-\item \livelinki{chap:classconstant}{constant}{constant class} \\
-\livetarg{datarep:classconstant}{}
-There are eight forms of constants. There are fixed length
-constant data forms for one-, two-, four-, eight- and sixteen-byte values
-(respectively, 
-\DWFORMdataoneTARG, 
-\DWFORMdatatwoTARG, 
-\DWFORMdatafourTARG,
-\DWFORMdataeightTARG{} and
-\DWFORMdatasixteenTARG). 
-There are also variable length constant
-data forms encoded using LEB128 numbers (see below). 
-Both signed (\DWFORMsdataTARG) and unsigned 
-(\DWFORMudataTARG) variable length constants are available.
-There is also an implicit constant (\DWFORMimplicitconst),
-whose value is provided as part of the abbreviation
-declaration.
-
-\needlines{4}
-The data in \DWFORMdataone, 
-\DWFORMdatatwo, 
-\DWFORMdatafour{}, 
-\DWFORMdataeight{} and
-\DWFORMdatasixteen{} 
-can be anything. Depending on context, it may
-be a signed integer, an unsigned integer, a floating\dash point
-constant, or anything else. A consumer must use context to
-know how to interpret the bits, which if they are target
-machine data (such as an integer or floating point constant)
-will be in target machine byte\dash order.
-
-\textit{If one of the \DWFORMdataTARG\textless n\textgreater 
-forms is used to represent a
-signed or unsigned integer, it can be hard for a consumer
-to discover the context necessary to determine which
-interpretation is intended. Producers are therefore strongly
-encouraged to use \DWFORMsdata{} or 
-\DWFORMudata{} for signed and
-unsigned integers respectively, rather than 
-\DWFORMdata\textless n\textgreater.}
-
-\needlines{4}
-\item \livelinki{chap:classexprloc}{exprloc}{exprloc class} \\
-\livetarg{datarep:classexprloc}{}
-This is an unsigned LEB128\addtoindexx{LEB128!unsigned} length followed by the
-number of information bytes specified by the length
-(\DWFORMexprlocTARG). 
-The information bytes contain a DWARF expression 
-(see Section \refersec{chap:dwarfexpressions}) 
-or location description 
-(see Section \refersec{chap:locationdescriptions}).
-
-\item \livelinki{chap:classflag}{flag}{flag class} \\
-\livetarg{datarep:classflag}{}
-A flag \addtoindexx{flag class}
-is represented explicitly as a single byte of data
-(\DWFORMflagTARG) or 
-implicitly (\DWFORMflagpresentTARG). 
-In the
-first case, if the \nolink{flag} has value zero, it indicates the
-absence of the attribute; if the \nolink{flag} has a non\dash zero value,
-it indicates the presence of the attribute. In the second
-case, the attribute is implicitly indicated as present, and
-no value is encoded in the debugging information entry itself.
-
-\item \livelinki{chap:classlineptr}{lineptr}{lineptr class} \\
-\livetarg{datarep:classlineptr}{}
-This is an offset into 
-\addtoindexx{section offset!in class lineptr value}
-the 
-\dotdebugline{} or \dotdebuglinedwo{} section
-(\DWFORMsecoffset).
-It consists of an offset from the beginning of the 
-\dotdebugline{}
-section to the first byte of
-the data making up the line number list for the compilation
-unit. 
-It is relocatable in a relocatable object file, and
-relocated in an executable or shared object. In the 
-\thirtytwobitdwarfformat, this offset is a 4\dash byte unsigned value;
-in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
-(see Section \refersec{datarep:32bitand64bitdwarfformats}).
-
-
-\item \livelinki{chap:classloclistptr}{loclistptr}{loclistptr class} \\
-\livetarg{datarep:classloclistptr}{}
-This is an offset into the 
-\dotdebugloc{}
-section
-(\DWFORMsecoffset). 
-It consists of an offset from the
-\addtoindexx{section offset!in class loclistptr value}
-beginning of the 
-\dotdebugloc{}
-section to the first byte of
-the data making up the 
-\addtoindex{location list} for the compilation unit. 
-It is relocatable in a relocatable object file, and
-relocated in an executable or shared object. In the 
-\thirtytwobitdwarfformat, this offset is a 4\dash byte unsigned value;
-in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
-(see Section \refersec{datarep:32bitand64bitdwarfformats}).
-
-
-\item \livelinki{chap:classmacptr}{macptr}{macptr class} \\
-\livetarg{datarep:classmacptr}{}
-This is an 
-\addtoindexx{section offset!in class macptr value}
-offset into the 
-\dotdebugmacro{} or \dotdebugmacrodwo{} section
-(\DWFORMsecoffset). 
-It consists of an offset from the beginning of the 
-\dotdebugmacro{} or \dotdebugmacrodwo{} 
-section to the the header making up the 
-macro information list for the compilation unit. 
-It is relocatable in a relocatable object file, and
-relocated in an executable or shared object. In the 
-\thirtytwobitdwarfformat, this offset is a 4\dash byte unsigned value;
-in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
-(see Section \refersec{datarep:32bitand64bitdwarfformats}).
-
-\needlines{4}
-\item \livelinki{chap:classrangelistptr}{rangelistptr}{rangelistptr class} \\
-\livetarg{datarep:classrangelistptr}{}
-This is an 
-\addtoindexx{section offset!in class rangelistptr value}
-offset into the \dotdebugranges{} section
-(\DWFORMsecoffset). 
-It consists of an
-offset from the beginning of the 
-\dotdebugranges{} section
-to the beginning of the non\dash contiguous address ranges
-information for the referencing entity.  
-It is relocatable in
-a relocatable object file, and relocated in an executable or
-shared object. In the \thirtytwobitdwarfformat, this offset
-is a 4\dash byte unsigned value; in the 64\dash bit DWARF
-format, it is an 8\dash byte unsigned value (see Section
-\refersec{datarep:32bitand64bitdwarfformats}).
-\end{itemize}
-
-\textit{Because classes
-\CLASSaddrptr, 
-\CLASSlineptr, 
-\CLASSloclistptr, 
-\CLASSmacptr, 
-\CLASSrangelistptr{} and
-\CLASSstroffsetsptr{}
-share a common representation, it is not possible for an
-attribute to allow more than one of these classes}
-
-
-\begin{itemize}
-\item \livelinki{chap:classreference}{reference}{reference class} \\
-\livetarg{datarep:classreference}{}
-There are four types of reference.
-
-The 
-\addtoindexx{reference class}
-first type of reference can identify any debugging
-information entry within the containing unit. 
-This type of
-reference is an 
-\addtoindexx{section offset!in class reference value}
-offset from the first byte of the compilation
-header for the compilation unit containing the reference. There
-are five forms for this type of reference. There are fixed
-length forms for one, two, four and eight byte offsets
-(respectively,
-\DWFORMrefnMARK 
-\DWFORMrefoneTARG, 
-\DWFORMreftwoTARG, 
-\DWFORMreffourTARG,
-and \DWFORMrefeightTARG). 
-There is also an unsigned variable
-length offset encoded form that uses 
-unsigned LEB128\addtoindexx{LEB128!unsigned} numbers
-(\DWFORMrefudataTARG). 
-Because this type of reference is within
-the containing compilation unit no relocation of the value
-is required.
-
-The second type of reference can identify any debugging
-information entry within a 
-\dotdebuginfo{} section; in particular,
-it may refer to an entry in a different compilation unit
-from the unit containing the reference, and may refer to an
-entry in a different shared object.  This type of reference
-(\DWFORMrefaddrTARG) 
-is an offset from the beginning of the
-\dotdebuginfo{} 
-section of the target executable or shared object, or, for
-references within a \addtoindex{supplementary object file}, 
-an offset from the beginning of the local \dotdebuginfo{} section;
-it is relocatable in a relocatable object file and frequently
-relocated in an executable file or shared object. For
-references from one shared object or static executable file
-to another, the relocation and identification of the target
-object must be performed by the consumer. In the 
-\thirtytwobitdwarfformat, this offset is a 4\dash byte unsigned value; 
-in the \sixtyfourbitdwarfformat, it is an 8\dash byte
-unsigned value 
-(see Section \refersec{datarep:32bitand64bitdwarfformats}).
-
-\textit{A debugging information entry that may be referenced by
-another compilation unit using 
-\DWFORMrefaddr{} must have a global symbolic name.}
-
-\textit{For a reference from one executable or shared object to
-another, the reference is resolved by the debugger to identify
-the shared object or executable and the offset into that
-object\textquoteright s \dotdebuginfo{}
-section in the same fashion as the run
-time loader, either when the debug information is first read,
-or when the reference is used.}
-
-The third type of reference can identify any debugging
-information type entry that has been placed in its own
-\addtoindex{type unit}. This type of 
-reference (\DWFORMrefsigeightTARG) is the
-\addtoindexx{type signature}
-64\dash bit type signature 
-(see Section \refersec{datarep:typesignaturecomputation}) 
-that was computed for the type. 
-
-The fourth type of reference is a reference from within the 
-\dotdebuginfo{} section of the executable or shared object to
-a debugging information entry in the \dotdebuginfo{} section of 
-a \addtoindex{supplementary object file}.
-This type of reference (\DWFORMrefsupTARG) is an offset from the 
-beginning of the \dotdebuginfo{} section in the supplementary 
-object file.
-
-\textit{The use of compilation unit relative references will reduce the
-number of link\dash time relocations and so speed up linking. The
-use of the second, third and fourth type of reference allows for the
-sharing of information, such as types, across compilation
-units, while the fourth type further allows for sharing of information 
-across compilation units from different executables or shared objects.}
-
-\textit{A reference to any kind of compilation unit identifies the
-debugging information entry for that unit, not the preceding
-header.}
-
-\needlines{4}
-\item \livelinki{chap:classstring}{string}{string class} \\
-\livetarg{datarep:classstring}{}
-A string is a sequence of contiguous non\dash null bytes followed by
-one null byte. 
-\addtoindexx{string class}
-A string may be represented: 
-\begin{itemize}
-\setlength{\itemsep}{0em}
-\item immediately in the debugging information entry itself 
-(\DWFORMstringTARG), 
-
-\item as an 
-\addtoindexx{section offset!in class string value}
-offset into a string table contained in
-the \dotdebugstr{} section of the object file (\DWFORMstrpTARG), 
-the \dotdebuglinestr{} section of the object file (\DWFORMlinestrpTARG),
-or as an offset into a string table contained in the
-\dotdebugstr{} section of a \addtoindex{supplementary object file} 
-(\DWFORMstrpsupTARG).  \DWFORMstrpsupNAME{} offsets from the \dotdebuginfo{}  
-section of a \addtoindex{supplementary object file}
-refer to the local \dotdebugstr{} section of that same file.
-In the \thirtytwobitdwarfformat, the representation of a 
-\DWFORMstrpNAME{}, \DWFORMstrpNAME{} or \DWFORMstrpsupNAME{}
-value is a 4\dash byte unsigned offset; in the \sixtyfourbitdwarfformat,
-it is an 8\dash byte unsigned offset 
-(see Section \refersec{datarep:32bitand64bitdwarfformats}).
-
-\item as an indirect offset into the string table using an 
-index into a table of offsets contained in the 
-\dotdebugstroffsets{} section of the object file (\DWFORMstrxTARG).
-The representation of a \DWFORMstrxNAME{} value is an unsigned 
-\addtoindex{LEB128} value, which is interpreted as a zero-based 
-index into an array of offsets in the \dotdebugstroffsets{} section. 
-The offset entries in the \dotdebugstroffsets{} section have the 
-same representation as \DWFORMstrp{} values.
-\end{itemize}
-Any combination of these three forms may be used within a single compilation.
-
-If the \DWATuseUTFeight{}
-\addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8} attribute is specified for the
-compilation, partial, skeleton or type unit entry, string values are encoded using the
-UTF\dash 8 (\addtoindex{Unicode} Transformation Format\dash 8) from the Universal
-Character Set standard (ISO/IEC 10646\dash 1:1993).
-\addtoindexx{ISO 10646 character set standard}
-Otherwise, the string representation is unspecified.
-
-\textit{The \addtoindex{Unicode} Standard Version 3 is fully compatible with
-ISO/IEC 10646\dash 1:1993. 
-\addtoindexx{ISO 10646 character set standard}
-It contains all the same characters
-and encoding points as ISO/IEC 10646, as well as additional
-information about the characters and their use.}
-
-\textit{Earlier versions of DWARF did not specify the representation
-of strings; for compatibility, this version also does
-not. However, the UTF\dash 8 representation is strongly recommended.}
-
-\needlines{4}
-\item \livelinki{chap:classstroffsetsptr}{stroffsetsptr}{stroffsetsptr class} \\
-\livetarg{datarep:classstroffsetsptr}{}
-This is an offset into the \dotdebugstroffsets{} section 
-(\DWFORMsecoffset). It consists of an offset from the beginning of the 
-\dotdebugstroffsets{} section to the
-beginning of the string offsets information for the
-referencing entity. It is relocatable in
-a relocatable object file, and relocated in an executable or
-shared object. In the \thirtytwobitdwarfformat, this offset
-is a 4\dash byte unsigned value; in the 64\dash bit DWARF
-format, it is an 8\dash byte unsigned value (see Section
-\refersec{datarep:32bitand64bitdwarfformats}).
-
-\textit{This class is new in \DWARFVersionV.}
-
-\end{itemize}
-
-In no case does an attribute use one of the classes 
-\CLASSaddrptr,
-\CLASSlineptr,
-\CLASSloclistptr, 
-\CLASSmacptr, 
-\CLASSrangelistptr{} or 
-\CLASSstroffsetsptr{}
-to point into either the
-\dotdebuginfo{} or \dotdebugstr{} section.
-
-The form encodings are listed in 
-Table \refersec{tab:attributeformencodings}.
-
+Table \referfol{tab:attributeencodings}.
 
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
@@ -1933,8 +1524,441 @@ Table \refersec{tab:attributeformencodings}.
 \DWATlouser&0x2000 & --- \addtoindexx{low user attribute encoding}  \\
 \DWAThiuser&\xiiifff& --- \addtoindexx{high user attribute encoding}  \\
 
-\end{longtable} 
-\end{centering}
+\end{longtable} 
+\end{centering}
+
+The attribute form governs how the value of the attribute is
+encoded. There are nine classes of form, listed below. Each
+class is a set of forms which have related representations
+and which are given a common interpretation according to the
+attribute in which the form is used.
+
+Form \DWFORMsecoffsetTARG{} 
+is a member of more 
+\addtoindexx{rangelistptr class}
+than 
+\addtoindexx{macptr class}
+one 
+\addtoindexx{loclistptr class}
+class,
+\addtoindexx{lineptr class}
+namely 
+\CLASSaddrptr, 
+\CLASSlineptr, 
+\CLASSloclistptr, 
+\CLASSmacptr,  
+\CLASSrangelistptr{} or
+\CLASSstroffsetsptr; 
+the list of classes allowed by the applicable attribute in 
+Table \refersec{tab:attributeencodings}
+determines the class of the form.
+
+
+\needlines{4}
+Each possible form belongs to one or more of the following classes:
+
+\begin{itemize}
+\item \livelinki{chap:classaddress}{address}{address class} \\
+\livetarg{datarep:classaddress}{}
+Represented as either:
+\begin{itemize}
+\item An object of appropriate size to hold an
+address on the target machine 
+(\DWFORMaddrTARG). 
+The size is encoded in the compilation unit header 
+(see Section \refersec{datarep:compilationunitheader}).
+This address is relocatable in a relocatable object file and
+is relocated in an executable file or shared object.
+
+\item An indirect index into a table of addresses (as 
+described in the previous bullet) in the
+\dotdebugaddr{} section (\DWFORMaddrxTARG). 
+The representation of a \DWFORMaddrxNAME{} value is an unsigned
+\addtoindex{LEB128} value, which is interpreted as a zero-based 
+index into an array of addresses in the \dotdebugaddr{} section.
+The index is relative to the value of the \DWATaddrbase{} attribute 
+of the associated compilation unit.
+\end{itemize}
+
+\needlines{5}
+\item \livelink{chap:classaddrptr}{addrptr} \\
+\livetarg{datarep:classaddrptr}{}
+This is an offset into the \dotdebugaddr{} section (\DWFORMsecoffset). It
+consists of an offset from the beginning of the \dotdebugaddr{} section to the
+beginning of the list of machine addresses information for the
+referencing entity. It is relocatable in
+a relocatable object file, and relocated in an executable or
+shared object. In the \thirtytwobitdwarfformat, this offset
+is a 4-byte unsigned value; in the 64-bit DWARF
+format, it is an 8-byte unsigned value (see Section
+\refersec{datarep:32bitand64bitdwarfformats}).
+
+\textit{This class is new in \DWARFVersionV.}
+
+\needlines{4}
+\item \livelink{chap:classblock}{block} \\
+\livetarg{datarep:classblock}{}
+Blocks come in four forms:
+
+\begin{myindentpara}{1cm}
+A 1-byte length followed by 0 to 255 contiguous information
+bytes (\DWFORMblockoneTARG).
+\end{myindentpara}
+
+\begin{myindentpara}{1cm}
+A 2-byte length followed by 0 to 65,535 contiguous information
+bytes (\DWFORMblocktwoTARG).
+\end{myindentpara}
+
+\begin{myindentpara}{1cm}
+A 4-byte length followed by 0 to 4,294,967,295 contiguous
+information bytes (\DWFORMblockfourTARG).
+\end{myindentpara}
+
+\begin{myindentpara}{1cm}
+An unsigned LEB128\addtoindexx{LEB128!unsigned}
+length followed by the number of bytes
+specified by the length (\DWFORMblockTARG).
+\end{myindentpara}
+
+In all forms, the length is the number of information bytes
+that follow. The information bytes may contain any mixture
+of relocated (or relocatable) addresses, references to other
+debugging information entries or data bytes.
+
+\item \livelinki{chap:classconstant}{constant}{constant class} \\
+\livetarg{datarep:classconstant}{}
+There are eight forms of constants. There are fixed length
+constant data forms for one-, two-, four-, eight- and sixteen-byte values
+(respectively, 
+\DWFORMdataoneTARG, 
+\DWFORMdatatwoTARG, 
+\DWFORMdatafourTARG,
+\DWFORMdataeightTARG{} and
+\DWFORMdatasixteenTARG). 
+There are also variable length constant
+data forms encoded using LEB128 numbers (see below). 
+Both signed (\DWFORMsdataTARG) and unsigned 
+(\DWFORMudataTARG) variable length constants are available.
+There is also an implicit constant (\DWFORMimplicitconst),
+whose value is provided as part of the abbreviation
+declaration.
+
+\needlines{4}
+The data in \DWFORMdataone, 
+\DWFORMdatatwo, 
+\DWFORMdatafour{}, 
+\DWFORMdataeight{} and
+\DWFORMdatasixteen{} 
+can be anything. Depending on context, it may
+be a signed integer, an unsigned integer, a floating\dash point
+constant, or anything else. A consumer must use context to
+know how to interpret the bits, which if they are target
+machine data (such as an integer or floating point constant)
+will be in target machine byte\dash order.
+
+\textit{If one of the \DWFORMdataTARG\textless n\textgreater 
+forms is used to represent a
+signed or unsigned integer, it can be hard for a consumer
+to discover the context necessary to determine which
+interpretation is intended. Producers are therefore strongly
+encouraged to use \DWFORMsdata{} or 
+\DWFORMudata{} for signed and
+unsigned integers respectively, rather than 
+\DWFORMdata\textless n\textgreater.}
+
+\needlines{4}
+\item \livelinki{chap:classexprloc}{exprloc}{exprloc class} \\
+\livetarg{datarep:classexprloc}{}
+This is an unsigned LEB128\addtoindexx{LEB128!unsigned} length followed by the
+number of information bytes specified by the length
+(\DWFORMexprlocTARG). 
+The information bytes contain a DWARF expression 
+(see Section \refersec{chap:dwarfexpressions}) 
+or location description 
+(see Section \refersec{chap:locationdescriptions}).
+
+\item \livelinki{chap:classflag}{flag}{flag class} \\
+\livetarg{datarep:classflag}{}
+A flag \addtoindexx{flag class}
+is represented explicitly as a single byte of data
+(\DWFORMflagTARG) or 
+implicitly (\DWFORMflagpresentTARG). 
+In the
+first case, if the \nolink{flag} has value zero, it indicates the
+absence of the attribute; if the \nolink{flag} has a non\dash zero value,
+it indicates the presence of the attribute. In the second
+case, the attribute is implicitly indicated as present, and
+no value is encoded in the debugging information entry itself.
+
+\item \livelinki{chap:classlineptr}{lineptr}{lineptr class} \\
+\livetarg{datarep:classlineptr}{}
+This is an offset into 
+\addtoindexx{section offset!in class lineptr value}
+the 
+\dotdebugline{} or \dotdebuglinedwo{} section
+(\DWFORMsecoffset).
+It consists of an offset from the beginning of the 
+\dotdebugline{}
+section to the first byte of
+the data making up the line number list for the compilation
+unit. 
+It is relocatable in a relocatable object file, and
+relocated in an executable or shared object. In the 
+\thirtytwobitdwarfformat, this offset is a 4-byte unsigned value;
+in the \sixtyfourbitdwarfformat, it is an 8-byte unsigned value
+(see Section \refersec{datarep:32bitand64bitdwarfformats}).
+
+
+\item \livelinki{chap:classloclistptr}{loclistptr}{loclistptr class} \\
+\livetarg{datarep:classloclistptr}{}
+This is an offset into the 
+\dotdebugloc{}
+section
+(\DWFORMsecoffset). 
+It consists of an offset from the
+\addtoindexx{section offset!in class loclistptr value}
+beginning of the 
+\dotdebugloc{}
+section to the first byte of
+the data making up the 
+\addtoindex{location list} for the compilation unit. 
+It is relocatable in a relocatable object file, and
+relocated in an executable or shared object. In the 
+\thirtytwobitdwarfformat, this offset is a 4-byte unsigned value;
+in the \sixtyfourbitdwarfformat, it is an 8-byte unsigned value
+(see Section \refersec{datarep:32bitand64bitdwarfformats}).
+
+
+\item \livelinki{chap:classmacptr}{macptr}{macptr class} \\
+\livetarg{datarep:classmacptr}{}
+This is an 
+\addtoindexx{section offset!in class macptr value}
+offset into the 
+\dotdebugmacro{} or \dotdebugmacrodwo{} section
+(\DWFORMsecoffset). 
+It consists of an offset from the beginning of the 
+\dotdebugmacro{} or \dotdebugmacrodwo{} 
+section to the the header making up the 
+macro information list for the compilation unit. 
+It is relocatable in a relocatable object file, and
+relocated in an executable or shared object. In the 
+\thirtytwobitdwarfformat, this offset is a 4-byte unsigned value;
+in the \sixtyfourbitdwarfformat, it is an 8-byte unsigned value
+(see Section \refersec{datarep:32bitand64bitdwarfformats}).
+
+\needlines{4}
+\item \livelinki{chap:classrangelistptr}{rangelistptr}{rangelistptr class} \\
+\livetarg{datarep:classrangelistptr}{}
+This is an 
+\addtoindexx{section offset!in class rangelistptr value}
+offset into the \dotdebugranges{} section
+(\DWFORMsecoffset). 
+It consists of an
+offset from the beginning of the 
+\dotdebugranges{} section
+to the beginning of the non\dash contiguous address ranges
+information for the referencing entity.  
+It is relocatable in
+a relocatable object file, and relocated in an executable or
+shared object. In the \thirtytwobitdwarfformat, this offset
+is a 4-byte unsigned value; in the 64-bit DWARF
+format, it is an 8-byte unsigned value (see Section
+\refersec{datarep:32bitand64bitdwarfformats}).
+\end{itemize}
+
+\textit{Because classes
+\CLASSaddrptr, 
+\CLASSlineptr, 
+\CLASSloclistptr, 
+\CLASSmacptr, 
+\CLASSrangelistptr{} and
+\CLASSstroffsetsptr{}
+share a common representation, it is not possible for an
+attribute to allow more than one of these classes}
+
+
+\begin{itemize}
+\item \livelinki{chap:classreference}{reference}{reference class} \\
+\livetarg{datarep:classreference}{}
+There are four types of reference.
+
+The 
+\addtoindexx{reference class}
+first type of reference can identify any debugging
+information entry within the containing unit. 
+This type of
+reference is an 
+\addtoindexx{section offset!in class reference value}
+offset from the first byte of the compilation
+header for the compilation unit containing the reference. There
+are five forms for this type of reference. There are fixed
+length forms for one, two, four and eight byte offsets
+(respectively,
+\DWFORMrefnMARK 
+\DWFORMrefoneTARG, 
+\DWFORMreftwoTARG, 
+\DWFORMreffourTARG,
+and \DWFORMrefeightTARG). 
+There is also an unsigned variable
+length offset encoded form that uses 
+unsigned LEB128\addtoindexx{LEB128!unsigned} numbers
+(\DWFORMrefudataTARG). 
+Because this type of reference is within
+the containing compilation unit no relocation of the value
+is required.
+
+The second type of reference can identify any debugging
+information entry within a 
+\dotdebuginfo{} section; in particular,
+it may refer to an entry in a different compilation unit
+from the unit containing the reference, and may refer to an
+entry in a different shared object.  This type of reference
+(\DWFORMrefaddrTARG) 
+is an offset from the beginning of the
+\dotdebuginfo{} 
+section of the target executable or shared object, or, for
+references within a \addtoindex{supplementary object file}, 
+an offset from the beginning of the local \dotdebuginfo{} section;
+it is relocatable in a relocatable object file and frequently
+relocated in an executable file or shared object. For
+references from one shared object or static executable file
+to another, the relocation and identification of the target
+object must be performed by the consumer. In the 
+\thirtytwobitdwarfformat, this offset is a 4-byte unsigned value; 
+in the \sixtyfourbitdwarfformat, it is an 8-byte
+unsigned value 
+(see Section \refersec{datarep:32bitand64bitdwarfformats}).
+
+\textit{A debugging information entry that may be referenced by
+another compilation unit using 
+\DWFORMrefaddr{} must have a global symbolic name.}
+
+\textit{For a reference from one executable or shared object to
+another, the reference is resolved by the debugger to identify
+the shared object or executable and the offset into that
+object\textquoteright s \dotdebuginfo{}
+section in the same fashion as the run
+time loader, either when the debug information is first read,
+or when the reference is used.}
+
+The third type of reference can identify any debugging
+information type entry that has been placed in its own
+\addtoindex{type unit}. This type of 
+reference (\DWFORMrefsigeightTARG) is the
+\addtoindexx{type signature}
+64-bit type signature 
+(see Section \refersec{datarep:typesignaturecomputation}) 
+that was computed for the type. 
+
+The fourth type of reference is a reference from within the 
+\dotdebuginfo{} section of the executable or shared object to
+a debugging information entry in the \dotdebuginfo{} section of 
+a \addtoindex{supplementary object file}.
+This type of reference (\DWFORMrefsupTARG) is an offset from the 
+beginning of the \dotdebuginfo{} section in the supplementary 
+object file.
+
+\textit{The use of compilation unit relative references will reduce the
+number of link\dash time relocations and so speed up linking. The
+use of the second, third and fourth type of reference allows for the
+sharing of information, such as types, across compilation
+units, while the fourth type further allows for sharing of information 
+across compilation units from different executables or shared objects.}
+
+\textit{A reference to any kind of compilation unit identifies the
+debugging information entry for that unit, not the preceding
+header.}
+
+\needlines{4}
+\item \livelinki{chap:classstring}{string}{string class} \\
+\livetarg{datarep:classstring}{}
+A string is a sequence of contiguous non\dash null bytes followed by
+one null byte. 
+\addtoindexx{string class}
+A string may be represented: 
+\begin{itemize}
+\setlength{\itemsep}{0em}
+\item immediately in the debugging information entry itself 
+(\DWFORMstringTARG), 
+
+\item as an 
+\addtoindexx{section offset!in class string value}
+offset into a string table contained in
+the \dotdebugstr{} section of the object file (\DWFORMstrpTARG), 
+the \dotdebuglinestr{} section of the object file (\DWFORMlinestrpTARG),
+or as an offset into a string table contained in the
+\dotdebugstr{} section of a \addtoindex{supplementary object file} 
+(\DWFORMstrpsupTARG).  \DWFORMstrpsupNAME{} offsets from the \dotdebuginfo{}  
+section of a \addtoindex{supplementary object file}
+refer to the local \dotdebugstr{} section of that same file.
+In the \thirtytwobitdwarfformat, the representation of a 
+\DWFORMstrpNAME{}, \DWFORMstrpNAME{} or \DWFORMstrpsupNAME{}
+value is a 4-byte unsigned offset; in the \sixtyfourbitdwarfformat,
+it is an 8-byte unsigned offset 
+(see Section \refersec{datarep:32bitand64bitdwarfformats}).
+
+\needlines{4}
+\item as an indirect offset into the string table using an 
+index into a table of offsets contained in the 
+\dotdebugstroffsets{} section of the object file (\DWFORMstrxTARG).
+The representation of a \DWFORMstrxNAME{} value is an unsigned 
+\addtoindex{LEB128} value, which is interpreted as a zero-based 
+index into an array of offsets in the \dotdebugstroffsets{} section. 
+The offset entries in the \dotdebugstroffsets{} section have the 
+same representation as \DWFORMstrp{} values.
+\end{itemize}
+Any combination of these three forms may be used within a single compilation.
+
+If the \DWATuseUTFeight{}
+\addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8} attribute is specified for the
+compilation, partial, skeleton or type unit entry, string values are encoded using the
+UTF\dash 8 (\addtoindex{Unicode} Transformation Format\dash 8) from the Universal
+Character Set standard (ISO/IEC 10646\dash 1:1993).
+\addtoindexx{ISO 10646 character set standard}
+Otherwise, the string representation is unspecified.
+
+\textit{The \addtoindex{Unicode} Standard Version 3 is fully compatible with
+ISO/IEC 10646\dash 1:1993. 
+\addtoindexx{ISO 10646 character set standard}
+It contains all the same characters
+and encoding points as ISO/IEC 10646, as well as additional
+information about the characters and their use.}
+
+\textit{Earlier versions of DWARF did not specify the representation
+of strings; for compatibility, this version also does
+not. However, the UTF\dash 8 representation is strongly recommended.}
+
+\needlines{4}
+\item \livelinki{chap:classstroffsetsptr}{stroffsetsptr}{stroffsetsptr class} \\
+\livetarg{datarep:classstroffsetsptr}{}
+This is an offset into the \dotdebugstroffsets{} section 
+(\DWFORMsecoffset). It consists of an offset from the beginning of the 
+\dotdebugstroffsets{} section to the
+beginning of the string offsets information for the
+referencing entity. It is relocatable in
+a relocatable object file, and relocated in an executable or
+shared object. In the \thirtytwobitdwarfformat, this offset
+is a 4-byte unsigned value; in the 64-bit DWARF
+format, it is an 8-byte unsigned value (see Section
+\refersec{datarep:32bitand64bitdwarfformats}).
+
+\textit{This class is new in \DWARFVersionV.}
+
+\end{itemize}
+
+In no case does an attribute use one of the classes 
+\CLASSaddrptr,
+\CLASSlineptr,
+\CLASSloclistptr, 
+\CLASSmacptr, 
+\CLASSrangelistptr{} or 
+\CLASSstroffsetsptr{}
+to point into either the
+\dotdebuginfo{} or \dotdebugstr{} section.
+
+The form encodings are listed in 
+Table \referfol{tab:attributeformencodings}.
 
 \needlines{8}
 \begin{centering}
@@ -2013,7 +2037,7 @@ Unsigned LEB128\addtoindexx{LEB128!unsigned} (\addtoindex{ULEB128})
 numbers are encoded as follows:
 \addtoindexx{LEB128!unsigned, encoding as}
 start at the low order end of an unsigned integer and chop
-it into 7\dash bit chunks. Place each chunk into the low order 7
+it into 7-bit chunks. Place each chunk into the low order 7
 bits of a byte. Typically, several of the high order bytes
 will be zero; discard them. Emit the remaining bytes in a
 stream, starting with the low order byte; set the high order
@@ -2036,7 +2060,7 @@ The encoding for signed, two\textquoteright s complement LEB128
 numbers is similar, except that the criterion for discarding
 high order bytes is not whether they are zero, but whether
 they consist entirely of sign extension bits. Consider the
-32\dash bit integer -2. The three high level bytes of the number
+32-bit integer -2. The three high level bytes of the number
 are sign extension, thus LEB128 would represent it as a single
 byte containing the low order 7 bits, with the high order
 bit cleared to indicate the end of the byte stream. Note
@@ -2116,7 +2140,7 @@ A
 \addtoindexx{DWARF expression!operator encoding}
 DWARF expression is stored in a \nolink{block} of contiguous
 bytes. The bytes form a sequence of operations. Each operation
-is a 1\dash byte code that identifies that operation, followed by
+is a 1-byte code that identifies that operation, followed by
 zero or more bytes of additional data. The encodings for the
 operations are described in 
 Table \refersec{tab:dwarfoperationencodings}. 
@@ -2141,20 +2165,20 @@ Table \refersec{tab:dwarfoperationencodings}.
 
 \DWOPderef&0x06&0 & \\
 
-\DWOPconstoneu&0x08&1&1\dash byte constant  \\
-\DWOPconstones&0x09&1&1\dash byte constant   \\
-\DWOPconsttwou&0x0a&1&2\dash byte constant   \\
-\DWOPconsttwos&0x0b&1&2\dash byte constant   \\
-\DWOPconstfouru&0x0c&1&4\dash byte constant    \\
-\DWOPconstfours&0x0d&1&4\dash byte constant   \\
-\DWOPconsteightu&0x0e&1&8\dash byte constant   \\
-\DWOPconsteights&0x0f&1&8\dash byte constant   \\
+\DWOPconstoneu&0x08&1&1-byte constant  \\
+\DWOPconstones&0x09&1&1-byte constant   \\
+\DWOPconsttwou&0x0a&1&2-byte constant   \\
+\DWOPconsttwos&0x0b&1&2-byte constant   \\
+\DWOPconstfouru&0x0c&1&4-byte constant    \\
+\DWOPconstfours&0x0d&1&4-byte constant   \\
+\DWOPconsteightu&0x0e&1&8-byte constant   \\
+\DWOPconsteights&0x0f&1&8-byte constant   \\
 \DWOPconstu&0x10&1&ULEB128 constant   \\
 \DWOPconsts&0x11&1&SLEB128 constant   \\
 \DWOPdup&0x12&0 &   \\
 \DWOPdrop&0x13&0  &   \\
 \DWOPover&0x14&0 &   \\
-\DWOPpick&0x15&1&1\dash byte stack index   \\
+\DWOPpick&0x15&1&1-byte stack index   \\
 \DWOPswap&0x16&0 &   \\
 \DWOProt&0x17&0 &   \\
 \DWOPxderef&0x18&0 &   \\
@@ -2174,14 +2198,14 @@ Table \refersec{tab:dwarfoperationencodings}.
 \DWOPshra&0x26&0 & \\
 \DWOPxor&0x27&0 & \\
 
-\DWOPbra&0x28&1 & signed 2\dash byte constant \\
+\DWOPbra&0x28&1 & signed 2-byte constant \\
 \DWOPeq&0x29&0 & \\
 \DWOPge&0x2a&0 & \\
 \DWOPgt&0x2b&0 & \\
 \DWOPle&0x2c&0 & \\
 \DWOPlt&0x2d&0  & \\
 \DWOPne&0x2e&0 & \\
-\DWOPskip&0x2f&1&signed 2\dash byte constant \\ \hline
+\DWOPskip&0x2f&1&signed 2-byte constant \\ \hline
 
 \DWOPlitzero & 0x30 & 0 & \\
 \DWOPlitone  & 0x31 & 0& literals 0 .. 31 = \\
@@ -2208,9 +2232,9 @@ Table \refersec{tab:dwarfoperationencodings}.
 \DWOPnop{} & 0x96 &0& \\
 
 \DWOPpushobjectaddress&0x97&0 &  \\
-\DWOPcalltwo&0x98&1& 2\dash byte offset of DIE \\
-\DWOPcallfour&0x99&1& 4\dash byte offset of DIE \\
-\DWOPcallref&0x9a&1& 4\dash\  or 8\dash byte offset of DIE \\
+\DWOPcalltwo&0x98&1& 2-byte offset of DIE \\
+\DWOPcallfour&0x99&1& 4-byte offset of DIE \\
+\DWOPcallref&0x9a&1& 4\dash\  or 8-byte offset of DIE \\
 \DWOPformtlsaddress&0x9b &0& \\
 \DWOPcallframecfa{} &0x9c &0& \\
 \DWOPbitpiece&0x9d &2&ULEB128 size, \\*
@@ -2259,7 +2283,7 @@ end-of-list entry.
 \needlines{6}
 \subsubsection{Location List Entries in Non-Split Objects}
 A \addtoindex{location list} entry consists of two address offsets followed
-by an unsigned 2\dash byte length, followed by a block of contiguous bytes
+by an unsigned 2-byte length, followed by a block of contiguous bytes
 that contains a DWARF location description. The length
 specifies the number of bytes in that block. The two offsets
 are the same size as an address on the target machine.
@@ -2283,6 +2307,7 @@ Each entry begins with an unsigned 1-byte code that indicates the kind of entry
 that follows. The encodings for these constants are given in
 Table \refersec{tab:locationlistentryencodingvalues}.
 
+\needlines{10}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|c}
@@ -2406,6 +2431,7 @@ Table \refersec{tab:endianityencodings}.
 \end{longtable}
 \end{centering}
 
+\needlines{10}
 \section{Accessibility Codes}
 \label{datarep:accessibilitycodes}
 The encodings of the constants used in the 
@@ -2486,11 +2512,10 @@ Table \refersec{tab:virtualityencodings}.
 \DWVIRTUALITYvirtual&0x01 \\
 \DWVIRTUALITYpurevirtual&0x02 \\
 
-
-
 \end{longtable}
 \end{centering}
 
+\needlines{4}
 The value 
 \DWVIRTUALITYnone{} is equivalent to the absence of the 
 \DWATvirtuality{}
@@ -2583,7 +2608,7 @@ The value of the common
 \addtoindex{address class} encoding 
 \DWADDRnone{} is 0.
 
-\needlines{7}
+\needlines{16}
 \section{Identifier Case}
 \label{datarep:identifiercase}
 
@@ -2591,6 +2616,7 @@ The encodings of the constants used in the
 \DWATidentifiercase{} attribute are given in 
 Table \refersec{tab:identifiercaseencodings}.
 
+\needlines{8}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|c}
@@ -2710,7 +2736,7 @@ The descriptors used in
 \addtoindexx{discriminant list attribute}
 the 
 \DWATdiscrlist{} attribute are 
-encoded as 1\dash byte constants. The
+encoded as 1-byte constants. The
 defined values are given in 
 Table \refersec{tab:discriminantdescriptorencodings}.
 
@@ -2747,7 +2773,7 @@ contains the size in bytes of this contribution to the \dotdebugnames{}
 section, not including the length field itself
 (see Section \refersec{datarep:initiallengthvalues}).
 
-\item \texttt{version} (\addtoindex{uhalf}) \\
+\item \texttt{version} (\HFTuhalf) \\
 A 2-byte version number\addtoindexx{version number!name index table} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 This number is specific to the name index table and is
@@ -2755,32 +2781,32 @@ independent of the DWARF version number.
 
 The value in this field is \versiondotdebugnames.
 
-\item padding (\addtoindex{uhalf}) \\
+\item padding (\HFTuhalf) \\
 
-\item \texttt{comp\_unit\_count} (4-byte unsigned integer) \\
+\item \texttt{comp\_unit\_count} (\HFTuword) \\
 The number of CUs in the CU list.
 
-\item \texttt{local\_type\_unit\_count} (4-byte unsigned integer) \\
+\item \texttt{local\_type\_unit\_count} (\HFTuword) \\
 The number of TUs in the first TU list.
 
-\item \texttt{foreign\_type\_unit\_count} (4-byte unsigned integer) \\
+\item \texttt{foreign\_type\_unit\_count} (\HFTuword) \\
 The number of TUs in the second TU list.
 
-\item \texttt{bucket\_count} (4-byte unsigned integer) \\
+\item \texttt{bucket\_count} (\HFTuword) \\
 The number of hash buckets in the hash lookup table. 
 If there is no hash lookup table, this field contains 0.
 
-\item \texttt{name\_count} (4-byte unsigned integer) \\
+\item \texttt{name\_count} (\HFTuword) \\
 The number of unique names in the index.
 
-\item \texttt{abbrev\_table\_size} (4-byte unsigned integer) \\
+\item \texttt{abbrev\_table\_size} (\HFTuword) \\
 The size in bytes of the abbreviations table.
 
-\item \texttt{augmentation\_string\_size} (4-byte unsigned integer) \\
+\item \texttt{augmentation\_string\_size} (\HFTuword) \\
 The size in bytes of the augmentation string. This value should be
 rounded up to a multiple of 4.
 
-\item \texttt{augmentation\_string} (sequence of characters) \\
+\item \texttt{augmentation\_string} (\HFTaugstring) \\
 A vendor-specific augmentation string, which provides additional 
 information about the contents of this index. If provided, the string
 should begin with a 4-character vendor ID. The remainder of the
@@ -2830,15 +2856,15 @@ are given in Table \referfol{datarep:defaultedattributeencodings}.
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|c}
-  \caption{Defaulted attribute encodings} \label{datarep:defaultedattributeencodings}\\
-  \hline \bfseries Defaulted name&\bfseries Value \\ \hline
+  \caption{Defaulted attribute encodings} \label{datarep:defaultedattributeencodings} \\
+  \hline \bfseries Defaulted name &\bfseries Value \\ \hline
 \endfirsthead
-  \bfseries Defaulted name&\bfseries Value \\ \hline
+  \bfseries Defaulted name &\bfseries Value \\ \hline
 \endhead
   \hline \emph{Continued on next page}
 \endfoot
   \hline
-  \ddag \ \textit{New in \DWARFVersionV}
+  \ddag~\textit{New in \DWARFVersionV}
 \endlastfoot
 \DWDEFAULTEDno~\ddag   & 0x00 \\
 \DWDEFAULTEDinclass~\ddag       & 0x01 \\
@@ -2869,8 +2895,8 @@ in the \sixtyfourbitdwarfformat, this consists of the 4-byte value
 the actual length 
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
-\item version (\addtoindex{uhalf}) \\
-A 2\dash byte version identifier representing the version of the
+\item version (\HFTuhalf) \\
+A 2-byte version identifier representing the version of the
 DWARF information for the address range table
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}).
 
@@ -2879,15 +2905,15 @@ This value in this field \addtoindexx{version number!address range table} is 2.
 \item debug\_info\_offset (\livelink{datarep:sectionoffsetlength}{section offset}) \\
 A 
 \addtoindexx{section offset!in .debug\_aranges header}
-4\dash byte or 8\dash byte offset into the 
+4-byte or 8-byte offset into the 
 \dotdebuginfo{} section of
 the compilation unit header. In the \thirtytwobitdwarfformat,
-this is a 4\dash byte unsigned offset; in the \sixtyfourbitdwarfformat,
-this is an 8\dash byte unsigned offset 
+this is a 4-byte unsigned offset; in the \sixtyfourbitdwarfformat,
+this is an 8-byte unsigned offset 
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
-\item \texttt{address\_size} (\addtoindex{ubyte}) \\
-A 1\dash byte unsigned integer containing the size in bytes of an
+\item \texttt{address\_size} (\HFTubyte) \\
+A 1-byte unsigned integer containing the size in bytes of an
 \addttindexx{address\_size}
 address 
 \addtoindexx{size of an address}
@@ -2895,10 +2921,10 @@ address
 \addtoindexx{address space!segmented}
 addressing) on the target system.
 
-\item \texttt{segment\_size} (\addtoindex{ubyte}) \\
+\item \texttt{segment\_size} (\HFTubyte) \\
 A 
 \addttindexx{segment\_size}
-1\dash byte unsigned integer containing the size in bytes of a
+1-byte unsigned integer containing the size in bytes of a
 segment selector on the target system.
 
 \end{enumerate}
@@ -2933,13 +2959,11 @@ used by the line number information program are encoded
 as a single byte containing the value 0 
 for \doublequote{false,} and a non-zero value for \doublequote{true.}
 
-\clearpage
 \needlines{10}
 The encodings for the standard opcodes are given in 
 \addtoindexx{line number opcodes!standard opcode encoding}
 Table \refersec{tab:linenumberstandardopcodeencodings}.
 
-% Odd that the 'Name' field capitalized here, it is not caps elsewhere.
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|c}
@@ -2965,11 +2989,11 @@ Table \refersec{tab:linenumberstandardopcodeencodings}.
 \DWLNSsetprologueend&0x0a \\*
 \DWLNSsetepiloguebegin&0x0b \\*
 \DWLNSsetisa&0x0c \\*
-
 \end{longtable}
 \end{centering}
 
-\needspace{6cm}
+\clearpage
+\needlines{12}
 The encodings for the extended opcodes are given in 
 \addtoindexx{line number opcodes!extended opcode encoding}
 Table \refersec{tab:linenumberextendedopcodeencodings}.
@@ -2999,8 +3023,7 @@ Table \refersec{tab:linenumberextendedopcodeencodings}.
 \end{longtable}
 \end{centering}
 
-\clearpage
-\needspace{6cm}
+\needlines{6}
 The encodings for the line number header entry formats are given in 
 \addtoindexx{line number opcodes!file entry format encoding}
 Table \refersec{tab:linenumberheaderentryformatencodings}.
@@ -3027,6 +3050,7 @@ Table \refersec{tab:linenumberheaderentryformatencodings}.
 \end{longtable}
 \end{centering}
 
+\needlines{6}
 \section{Macro Information}
 \label{datarep:macroinformation}
 The \addtoindexi{version number}{version number!macro information}
@@ -3115,9 +3139,9 @@ Table \refersec{tab:callframeinstructionencodings}.
 \DWCFArestore&0x3&register & & \\
 \DWCFAnop&0&0 & & \\
 \DWCFAsetloc&0&0x01&address & \\
-\DWCFAadvancelocone&0&0x02&1\dash byte delta & \\
-\DWCFAadvanceloctwo&0&0x03&2\dash byte delta & \\
-\DWCFAadvancelocfour&0&0x04&4\dash byte delta & \\
+\DWCFAadvancelocone&0&0x02&1-byte delta & \\
+\DWCFAadvanceloctwo&0&0x03&2-byte delta & \\
+\DWCFAadvancelocfour&0&0x04&4-byte delta & \\
 \DWCFAoffsetextended&0&0x05&ULEB128 register&ULEB128 offset \\
 \DWCFArestoreextended&0&0x06&ULEB128 register & \\
 \DWCFAundefined&0&0x07&ULEB128 register & \\
@@ -3189,12 +3213,12 @@ that gives the actual length (see
 Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 %\needlines{4}
-\item  \texttt{version} (\addtoindex{uhalf}) \\
+\item  \texttt{version} (\HFTuhalf) \\
 A 2-byte version identifier containing the value
 \versiondotdebugstroffsets{} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}).
 
-\item \texttt{padding} (\addtoindex{uhalf}) \\
+\item \texttt{padding} (\HFTuhalf) \\
 \end{enumerate}
 
 This header is followed by a series of string table offsets
@@ -3224,20 +3248,20 @@ that gives the actual length (see
 Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \needlines{4}
-\item  \texttt{version} (\addtoindex{uhalf}) \\
+\item  \texttt{version} (\HFTuhalf) \\
 A 2-byte version identifier containing the value
 \versiondotdebugaddr{} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}).
 
 \needlines{4}
-\item  \texttt{address\_size} (\addtoindex{ubyte}) \\
+\item  \texttt{address\_size} (\HFTubyte) \\
 A 1-byte unsigned integer containing the size in
 bytes of an address (or the offset portion of an
 address for segmented addressing) on the target
 system.
 
 \needlines{4}
-\item  \texttt{segment\_size} (\addtoindex{ubyte}) \\
+\item  \texttt{segment\_size} (\HFTubyte) \\
 A 1-byte unsigned integer containing the size in
 bytes of a segment selector on the target system.
 \end{enumerate}
@@ -3252,6 +3276,7 @@ The \DWATaddrbase{} attribute points to the first entry
 following the header. The entries are indexed sequentially
 from this base entry, starting from 0.
 
+\needlines{10}
 \section{Range List Table}
 \label{app:rangelisttable}
 Each set of entries in the range list table contained in the
@@ -3270,20 +3295,20 @@ that gives the actual length (see
 Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \needlines{4}
-\item  \texttt{version} (\addtoindex{uhalf}) \\
+\item  \texttt{version} (\HFTuhalf) \\
 A 2-byte version identifier containing the value
 \versiondotdebugranges{} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}).
 
 \needlines{4}
-\item  \texttt{address\_size} (\addtoindex{ubyte}) \\
+\item  \texttt{address\_size} (\HFTubyte) \\
 A 1-byte unsigned integer containing the size in
 bytes of an address (or the offset portion of an
 address for segmented addressing) on the target
 system.
 
 \needlines{4}
-\item  \texttt{segment\_size} (\addtoindex{ubyte}) \\
+\item  \texttt{segment\_size} (\HFTubyte) \\
 A 1-byte unsigned integer containing the size in
 bytes of a segment selector on the target system.
 \end{enumerate}
@@ -3319,20 +3344,20 @@ that gives the actual length (see
 Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 \needlines{4}
-\item  \texttt{version} (\addtoindex{uhalf}) \\
+\item  \texttt{version} (\HFTuhalf) \\
 A 2-byte version identifier containing the value
 \versiondotdebugloc{} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}).
 
 \needlines{5}
-\item  \texttt{address\_size} (\addtoindex{ubyte}) \\
+\item  \texttt{address\_size} (\HFTubyte) \\
 A 1-byte unsigned integer containing the size in
 bytes of an address (or the offset portion of an
 address for segmented addressing) on the target
 system.
 
 \needlines{4}
-\item  \texttt{segment\_size} (\addtoindex{ubyte}) \\
+\item  \texttt{segment\_size} (\HFTubyte) \\
 A 1-byte unsigned integer containing the size in
 bytes of a segment selector on the target system.
 \end{enumerate}
@@ -3352,71 +3377,58 @@ location list following this header.
 \section{Dependencies and Constraints}
 \label{datarep:dependenciesandconstraints}
 The debugging information in this format is intended to
-exist 
-\addtoindexx{DWARF section names!list of}
-in the
-\dotdebugabbrev{},
-\dotdebugaddr{}, 
-\dotdebugaranges{}, 
-\dotdebugframe{},
-\dotdebuginfo{}, 
-\dotdebugline{}, 
-\dotdebuglinestr{},
-\dotdebugloc{}, 
-\dotdebugmacro{},
-\dotdebugnames{}, 
-\dotdebugranges{}, 
-\dotdebugstr{},
-and
-\dotdebugstroffsets{}
-sections of an object file, or equivalent
-separate file or database. The information is not 
-word\dash aligned. Consequently:
+exist in sections of an object file, or an equivalent
+separate file or database, having names beginning with
+the prefix ".debug\_" (see Appendix 
+\refersec{app:dwarfsectionversionnumbersinformative}
+for a complete list of such names). 
+Except as specifically specified, this information is not 
+aligned on 2-, 4- or 8-byte boundaries. Consequently:
 
 \begin{itemize}
 \item For the \thirtytwobitdwarfformat{} and a target architecture with
-32\dash bit addresses, an assembler or compiler must provide a way
-to produce 2\dash byte and 4\dash byte quantities without alignment
+32-bit addresses, an assembler or compiler must provide a way
+to produce 2-byte and 4-byte quantities without alignment
 restrictions, and the linker must be able to relocate a
-4\dash byte address or 
+4-byte address or 
 \addtoindexx{section offset!alignment of}
 section offset that occurs at an arbitrary
 alignment.
 
 \item For the \thirtytwobitdwarfformat{} and a target architecture with
-64\dash bit addresses, an assembler or compiler must provide a
-way to produce 2\dash byte, 4\dash byte and 8\dash byte quantities without
+64-bit addresses, an assembler or compiler must provide a
+way to produce 2-byte, 4-byte and 8-byte quantities without
 alignment restrictions, and the linker must be able to relocate
-an 8\dash byte address or 4\dash byte 
+an 8-byte address or 4-byte 
 \addtoindexx{section offset!alignment of}
 section offset that occurs at an
 arbitrary alignment.
 
 \item For the \sixtyfourbitdwarfformat{} and a target architecture with
-32\dash bit addresses, an assembler or compiler must provide a
-way to produce 2\dash byte, 4\dash byte and 8\dash byte quantities without
+32-bit addresses, an assembler or compiler must provide a
+way to produce 2-byte, 4-byte and 8-byte quantities without
 alignment restrictions, and the linker must be able to relocate
-a 4\dash byte address or 8\dash byte 
+a 4-byte address or 8-byte 
 \addtoindexx{section offset!alignment of}
 section offset that occurs at an
 arbitrary alignment.
 
 \textit{It is expected that this will be required only for very large
-32\dash bit programs or by those architectures which support
-a mix of 32\dash bit and 64\dash bit code and data within the same
+32-bit programs or by those architectures which support
+a mix of 32-bit and 64-bit code and data within the same
 executable object.}
 
 \item For the \sixtyfourbitdwarfformat{} and a target architecture with
-64\dash bit addresses, an assembler or compiler must provide a
-way to produce 2\dash byte, 4\dash byte and 8\dash byte quantities without
+64-bit addresses, an assembler or compiler must provide a
+way to produce 2-byte, 4-byte and 8-byte quantities without
 alignment restrictions, and the linker must be able to
-relocate an 8\dash byte address or 
+relocate an 8-byte address or 
 \addtoindexx{section offset!alignment of}
 section offset that occurs at
 an arbitrary alignment.
 \end{itemize}
 
-\needlines{8}
+\needlines{10}
 \section{Integer Representation Names}
 \label{datarep:integerrepresentationnames}
 The sizes of the integers used in the lookup by name, lookup
@@ -3438,10 +3450,10 @@ Table \ref{tab:integerrepresentationnames}.
   \hline
 \endlastfoot
 
-\addtoindex{sbyte}&  signed, 1\dash byte integer \\
-\addtoindex{ubyte}&unsigned, 1\dash byte integer \\
-\addtoindex{uhalf}&unsigned, 2\dash byte integer \\
-\addtoindex{uword}&unsigned, 4\dash byte integer \\
+\HFTsbyte&  signed, 1-byte integer \\
+\HFTubyte&unsigned, 1-byte integer \\
+\HFTuhalf&unsigned, 2-byte integer \\
+\HFTuword&unsigned, 4-byte integer \\
 
 \end{longtable}
 \end{centering}
index 953a259..54073f1 100644 (file)
@@ -253,12 +253,12 @@ are offsets to the corresponding string text in the
 \dotdebugstr{} section.
 
 %m
-\item \dotdebugmacro{} to \dotdebugstr \\
+\item \dotdebugmacro{} to \dotdebugstroffsets \\
 The second operand of a 
-\DWMACROdefineindirect{} or \DWMACROundefindirect{} macro information
-entry is an index into the string table in the 
-\dotdebugstr{} section.
-
+\DWMACROdefineindirectx{} or \DWMACROundefindirectx{} 
+macro information entry is an index
+into the string offset table in the 
+\dotdebugstroffsets{} section.
 
 %n
 \item \dotdebugmacro{} to \dotdebugline \\
@@ -273,15 +273,14 @@ of that section given in the macro information header.
 \dotdebugloc{} section refer indirectly to the 
 \dotdebugaddr{} section by way of the 
 \DWATaddrbase{} attribute in the associated \dotdebuginfo{} 
-section. 
+section. F
 
 %p
-\item \dotdebugmacro{} to \dotdebugstroffsets \\
+\item \dotdebugmacro{} to \dotdebugstr \\
 The second operand of a 
-\DWMACROdefineindirectx{} or \DWMACROundefindirectx{} 
-macro information entry is an index
-into the string offset table in the 
-\dotdebugstroffsets{} section.
+\DWMACROdefineindirect{} or \DWMACROundefindirect{} macro information
+entry is an index into the string table in the 
+\dotdebugstr{} section.
 
 %q
 \needlines{4}
index ccaa5a1..afa7e0e 100644 (file)
@@ -3,7 +3,7 @@
 % If draft is in the document class list, pix are just suggested
 % by an outline, the pic does not appear as a picture.
 %
-\newcommand{\docdate}{April 23, 2015}
+\newcommand{\docdate}{April 26, 2015}
 %
 \usepackage{ifthen}
 \newboolean{isdraft}
@@ -148,7 +148,7 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 \newcommand{\singlequote}[1]{\textquoteleft #1\textquoteright}
 
 % Better naming for the lowest level section header
-\newcommand{\subsubsubsection}[1]{\paragraph{#1.}~\newline}
+\newcommand{\subsubsubsection}[1]{\paragraph{#1}~\newline}
 %\newcommand{\subsubsubsection}         %% Has to be in a style file--ugh...
 %   {\@startsection{subsubsubsection}{4}{0mm}{-\baselineskip}{\baselineskip}{\normalfont\normalsize\itshap}}
 
@@ -302,9 +302,9 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 % Define the levels of sectionality that are numbered.
 \setcounter{secnumdepth}{5}
 
-\include{introduction}                  \emptypage
-\include{generaldescription}            %\emptypage
-\include{programscope}                  %\emptypage
+\include{introduction}                  %\emptypage
+\include{generaldescription}            \emptypage
+\include{programscope}                  \emptypage
 \include{dataobject}                    %\emptypage
 \include{typeentries}                   \emptypage
 \include{otherdebugginginformation}    \emptypage
@@ -313,14 +313,14 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 %  The \appendix toggles us into appendix chapters
 \appendix
 
-\include{attributesbytag}              \emptypage
+\include{attributesbytag}              %\emptypage
 \include{debugsectionrelationships}     \emptypage
 \include{encodingdecoding}              \emptypage
 \include{examples}                      \emptypage
 \include{compression}                   \emptypage
 \include{splitobjects}                 %\emptypage
 \include{sectionversionnumbers}         \emptypage
-\include{gnulicense}
+\include{gnulicense}                    \emptypage
 
 \printindex
 
index a0ab232..52ca830 100644 (file)
 \newcommand{\HFTubyte}{\addtoindex{ubyte}}
 \newcommand{\HFTuhalf}{\addtoindex{uhalf}}
 \newcommand{\HFTuword}{\addtoindex{uword}}
+\newcommand{\HFTaugstring}{sequence of \addtoindex{UTF\dash{}8} characters\addtoindexx{augmentation string}}
 %
 % Miscellaneous
 %
index f336c05..56a4165 100644 (file)
@@ -626,6 +626,7 @@ illustrated in Figure \refersec{fig:FortranarraycoarrayDWARFdescription}.
 \label{fig:FortranarraycoarrayDWARFdescription}
 \end{figure}
 
+\needlines{6}
 \subsubsection{Fortran Multidimensional Coarray Example}
 The \addtoindex{Fortran} multidimensional coarray of a multidimensional array example
 \addtoindexx{coarray!example}\addtoindexx{array coarray|see{coarray}}
@@ -1726,7 +1727,7 @@ the style of the Motorola 88000.
 by adding the contents of the
 source register with the constant.
 
-\item There are eight 4\dash byte registers:
+\item There are eight 4-byte registers:
 \newline
 \begin{tabular}{p{5mm}l}
    & R0 always 0 \\
index e4ec950..6d393c8 100644 (file)
@@ -168,41 +168,55 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \endfoot
   \hline
 \endlastfoot
+
 \DWATabstractoriginTARG
-&\livelinki{chap:DWATabstractorigininlineinstance}{Inline instances of inline subprograms} {inline instances of inline subprograms} \\
+&\livelinki{chap:DWATabstractorigininlineinstance}
+        {Inline instances of inline subprograms} 
+        {inline instances of inline subprograms} \\
 % Heren livelink we cannot use \dash or \dash{}.
-&\livelinki{chap:DWATabstractoriginoutoflineinstance}{Out-of-line instances of inline subprograms}{out-of-line instances of inline subprograms} \\
+&\livelinki{chap:DWATabstractoriginoutoflineinstance}
+        {Out-of-line instances of inline subprograms}
+        {out-of-line instances of inline subprograms} \\
 \DWATaccessibilityTARG
-&\livelink{chap:DWATaccessibilitycandadadeclarations}{C++ and Ada declarations} \addtoindexx{Ada} \\
-&\livelink{chap:DWATaccessibilitycppbaseclasses}{C++ base classes} \\
-&\livelink{chap:DWATaccessibilitycppinheritedmembers}{C++ inherited members} \\
+&\livelink{chap:DWATaccessibilitycandadadeclarations}
+        {Accessibility of declarations} (\addtoindex{C++}, \addtoindex{Ada}) \\
+&\livelink{chap:DWATaccessibilitycppbaseclasses}
+        {Accessibility of base classes} (\addtoindex{C++}) \\
+&\livelink{chap:DWATaccessibilitycppinheritedmembers}
+        {Accessibility of inherited members} (\addtoindex{C++}) \\
 \DWATaddressclassTARG
-&\livelinki{chap:DWATadressclasspointerorreferencetypes}{Pointer or reference types}{pointer or reference types}  \\
+&\livelinki{chap:DWATadressclasspointerorreferencetypes}
+        {Pointer or reference types}
+        {pointer or reference types}  \\
 &\livelinki{chap:DWATaddressclasssubroutineorsubroutinetype}
-           {Subroutine or subroutine type}
-           {subroutine or subroutine type} \\
+        {Subroutine or subroutine type}
+        {subroutine or subroutine type} \\
 \DWATaddrbaseTARG
 &\livelinki{chap:DWATaddrbaseforaddresstable}{Base offset for address table}{address table} \\
 \DWATalignmentTARG
 &\livelinki{chap:DWATalignmentnondefault}
-           {Non-default alignment of type, subprogram or variable}
-           {non-default alignment} \addtoindexx{alignment!non-default} \\
+        {Non-default alignment of type, subprogram or variable}
+        {non-default alignment} \addtoindexx{alignment!non-default} \\
 \DWATallocatedTARG
-&\livelinki{chap:DWATallocatedallocationstatusoftypes}{Allocation status of types}{allocation status of types}  \\
+&\livelinki{chap:DWATallocatedallocationstatusoftypes}
+        {Allocation status of types}
+        {allocation status of types}  \\
 \DWATartificialTARG
 &\livelinki{chap:DWATartificialobjectsortypesthat}
-           {Objects or types that are not actually declared in the source}
-           {objects or types that are not actually declared in the source}  \\
+        {Objects or types that are not actually declared in the source}
+        {objects or types that are not actually declared in the source}  \\
 \DWATassociatedTARG{} 
-&\livelinki{chap:DWATassociatedassociationstatusoftypes}{Association status of types}{association status of types} \\
+&\livelinki{chap:DWATassociatedassociationstatusoftypes}
+        {Association status of types}
+        {association status of types} \\
 \DWATbasetypesTARG{} 
 &\livelinki{chap:DWATbasetypesprimitivedatatypesofcompilationunit}
-           {Primitive data types of compilation unit}
-           {primitive data types of compilation unit} \\
+        {Primitive data types of compilation unit}
+        {primitive data types of compilation unit} \\
 \DWATbinaryscaleTARG{} 
 &\livelinki{chap:DWATbinaryscalebinaryscalefactorforfixedpointtype}
-           {Binary scale factor for fixed-point type}
-           {binary scale factor for fixed-point type} \\
+        {Binary scale factor for fixed-point type}
+        {binary scale factor for fixed-point type} \\
 %\DWATbitoffsetTARG{} 
 %&\livelinki{chap:DWATbitoffsetbasetypebitlocation}{Base type bit location}{base type bit location} \\
 %&\livelinki{chap:DWATbitoffsetdatamemberbitlocation}{Data member bit location}{data member bit location} \\
@@ -221,7 +235,8 @@ The attributes are listed in Table \referfol{tab:attributenames}.
            {enumeration stride (dimension of array type)} \\
 \DWATbytesizeTARG{} 
 &\livelinki{chap:DWATbytesizedataobjectordatatypesize}
-           {Size of a data object or data type in bytes}{data object or data type size} \\
+           {Size of a data object or data type in bytes}
+           {data object or data type size} \\
 \DWATbytestrideTARG{} 
 &\livelinki{chap:DWATbytestridearrayelementstrideofarraytype}
            {Array element stride (of array type)}
@@ -325,10 +340,16 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 &\livelinki{chap:DWATconstvalueenumerationliteralvalue}{Enumeration literal value}{enumeration literal value} \\
 &\livelinki{chap:DWATconstvaluetemplatevalueparameter}{Template value parameter}{template value parameter} \\
 \DWATconstexprTARG
-&\livelinki{chap:DWATconstexprcompiletimeconstantobject}{Compile-time constant object}{compile-time constant object} \\
-&\livelinki{chap:DWATconstexprcompiletimeconstantfunction}{Compile-time constant function}{compile-time constant function} \\
+&\livelinki{chap:DWATconstexprcompiletimeconstantobject}
+        {Compile-time constant object}
+        {compile-time constant object} \\
+&\livelinki{chap:DWATconstexprcompiletimeconstantfunction}
+        {Compile-time constant function}
+        {compile-time constant function} \\
 \DWATcontainingtypeTARG
-&\livelinki{chap:DWATcontainingtypecontainingtypeofpointertomembertype}{Containing type of pointer to member type}{containing type of pointer to member type} \\
+&\livelinki{chap:DWATcontainingtypecontainingtypeofpointertomembertype}
+        {Containing type of pointer to member type}
+        {containing type of pointer to member type} \\
 \DWATcountTARG
 &\livelinki{chap:DWATcountelementsofsubrangetype}{Elements of subrange type}{elements of breg subrange type} \\
 \DWATdatabitoffsetTARG
@@ -344,13 +365,21 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATdecimalsignTARG
 &\livelinki{chap:DWATdecimalsigndecimalsignrepresentation}{Decimal sign representation}{decimal sign representation} \\
 \DWATdeclcolumnTARG
-&\livelinki{chap:DWATdeclcolumncolumnpositionofsourcedeclaration}{Column position of source declaration}{column position of source declaration} \\
+&\livelinki{chap:DWATdeclcolumncolumnpositionofsourcedeclaration}
+        {Column position of source declaration}
+        {column position of source declaration} \\
 \DWATdeclfileTARG
-&\livelinki{chap:DWATdeclfilefilecontainingsourcedeclaration}{File containing source declaration}{file containing source declaration} \\
+&\livelinki{chap:DWATdeclfilefilecontainingsourcedeclaration}
+        {File containing source declaration}
+        {file containing source declaration} \\
 \DWATdecllineTARG
-&\livelinki{chap:DWATdecllinelinenumberofsourcedeclaration}{Line number of source declaration}{line number of source declaration} \\
+&\livelinki{chap:DWATdecllinelinenumberofsourcedeclaration}
+        {Line number of source declaration}
+        {line number of source declaration} \\
 \DWATdeclarationTARG
-&\livelinki{chap:DWATdeclarationincompletenondefiningorseparateentitydeclaration}{Incomplete, non-defining, or separate entity declaration}{incomplete, non-defining, or separate entity declaration} \\
+&\livelinki{chap:DWATdeclarationincompletenondefiningorseparateentitydeclaration}
+        {Incomplete, non-defining, or separate entity declaration}
+        {incomplete, non-defining, or separate entity declaration} \\
 \DWATdefaultedTARG
 &\livelinki{chap:DWATdefaulteddef}{Whether a member function has been declared as default}{defaulted attribute} \\
 \DWATdefaultvalueTARG
@@ -358,9 +387,13 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATdeletedTARG
 &\livelinki{chap:DWATdeleteddef}{Whether a member has been declared as deleted}{Deletion of member function} \\
 \DWATdescriptionTARG{} 
-&\livelinki{chap:DWATdescriptionartificialnameordescription}{Artificial name or description}{artificial name or description} \\
+&\livelinki{chap:DWATdescriptionartificialnameordescription}
+        {Artificial name or description}
+        {artificial name or description} \\
 \DWATdigitcountTARG
-&\livelinki{chap:DWATdigitcountdigitcountforpackeddecimalornumericstringtype}{Digit count for packed decimal or numeric string type}{digit count for packed decimal or numeric string type} \\
+&\livelinki{chap:DWATdigitcountdigitcountforpackeddecimalornumericstringtype}
+        {Digit count for packed decimal or numeric string type}
+        {digit count for packed decimal or numeric string type} \\
 \DWATdiscrTARG
 &\livelinki{chap:DWATdiscrdiscriminantofvariantpart}{Discriminant of variant part}{discriminant of variant part} \\
 \DWATdiscrlistTARG
@@ -372,7 +405,9 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATdwonameTARG
 &\livelinki{chap:DWATdwonameforunit}{Name of split DWARF object file}{split DWARF object file!object file name} \\
 \DWATelementalTARG
-&\livelinki{chap:DWATelementalelementalpropertyofasubroutine}{Elemental property of a subroutine}{elemental property of a subroutine} \\
+&\livelinki{chap:DWATelementalelementalpropertyofasubroutine}
+        {Elemental property of a subroutine}
+        {elemental property of a subroutine} \\
 \DWATencodingTARG
 &\livelinki{chap:DWATencodingencodingofbasetype}{Encoding of base type}{encoding of base type} \\
 \DWATendianityTARG
@@ -380,16 +415,24 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATentrypcTARG
 &\livelinki{chap:entryaddressofscope}{Entry address of a scope (compilation unit, \mbox{subprogram,} and so on)}{} \\
 \DWATenumclassTARG
-&\livelinki{chap:DWATenumclasstypesafeenumerationdefinition}{Type safe enumeration definition}{type safe enumeration definition}\\
+&\livelinki{chap:DWATenumclasstypesafeenumerationdefinition}
+        {Type safe enumeration definition}
+        {type safe enumeration definition}\\
 \DWATexplicitTARG
-&\livelinki{chap:DWATexplicitexplicitpropertyofmemberfunction}{Explicit property of member function}{explicit property of member function}\\
+&\livelinki{chap:DWATexplicitexplicitpropertyofmemberfunction}
+        {Explicit property of member function}
+        {explicit property of member function}\\
 \DWATexportsymbolsTARG
-&\livelinki{chap:DWATexportsymbolsofnamespace}{Export (inline) symbols of namespace}
-               {export symbols of a namespace} \\
-&\livelinki{chap:DWATexportsymbolsofstructunionclass}{Export symbols of a structure, union or class}
-               {export symbols of a structure, union or class} \\
+&\livelinki{chap:DWATexportsymbolsofnamespace}
+        {Export (inline) symbols of namespace}
+        {export symbols of a namespace} \\
+&\livelinki{chap:DWATexportsymbolsofstructunionclass}
+        {Export symbols of a structure, union or class}
+        {export symbols of a structure, union or class} \\
 \DWATextensionTARG
-&\livelinki{chap:DWATextensionpreviousnamespaceextensionororiginalnamespace}{Previous namespace extension or original namespace}{previous namespace extension or original namespace}\\
+&\livelinki{chap:DWATextensionpreviousnamespaceextensionororiginalnamespace}
+        {Previous namespace extension or original namespace}
+        {previous namespace extension or original namespace}\\
 \DWATexternalTARG
 &\livelinki{chap:DWATexternalexternalsubroutine}{External subroutine}{external subroutine} \\
 &\livelinki{chap:DWATexternalexternalvariable}{External variable}{external variable} \\
@@ -398,7 +441,9 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATfriendTARG
 &\livelinki{chap:DWATfriendfriendrelationship}{Friend relationship}{friend relationship} \\
 \DWAThighpcTARG
-&\livelinki{chap:DWAThighpccontiguousrangeofcodeaddresses}{Contiguous range of code addresses}{contiguous range of code addresses} \\
+&\livelinki{chap:DWAThighpccontiguousrangeofcodeaddresses}
+        {Contiguous range of code addresses}
+        {contiguous range of code addresses} \\
 \DWATidentifiercaseTARG
 &\livelinki{chap:DWATidentifiercaseidentifiercaserule}{Identifier case rule}{identifier case rule} \\
 \DWATimportTARG
@@ -415,11 +460,15 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATlanguageTARG
 &\livelinki{chap:DWATlanguageprogramminglanguage}{Programming language}{programming language} \\
 \DWATlinkagenameTARG
-&\livelinki{chap:DWATlinkagenameobjectfilelinkagenameofanentity}{Object file linkage name of an entity}{object file linkage name of an entity}\\
+&\livelinki{chap:DWATlinkagenameobjectfilelinkagenameofanentity}
+        {Object file linkage name of an entity}
+        {object file linkage name of an entity}\\
 \DWATlocationTARG
 &\livelinki{chap:DWATlocationdataobjectlocation}{Data object location}{data object location}\\
 \DWATlowpcTARG
-&\livelinki{chap:DWATlowpccodeaddressorrangeofaddresses}{Code address or range of addresses}{code address or range of addresses}\\
+&\livelinki{chap:DWATlowpccodeaddressorrangeofaddresses}
+        {Code address or range of addresses}
+        {code address or range of addresses}\\
 \DWATlowerboundTARG
 &\livelinki{chap:DWATlowerboundlowerboundofsubrange}{Lower bound of subrange}{lower bound of subrange} \\
 \DWATmacroinfoTARG
@@ -435,9 +484,13 @@ The attributes are listed in Table \referfol{tab:attributenames}.
                 \addtoindex{C++} and similar languages)} \\
 \DWATmainsubprogramTARG
 &\livelinki{chap:DWATmainsubprogrammainorstartingsubprogram}{Main or starting subprogram}{main or starting subprogram} \\
-&\livelinki{chap:DWATmainsubprogramunitcontainingmainorstartingsubprogram}{Unit containing main or starting subprogram}{unit containing main or starting subprogram}\\
+&\livelinki{chap:DWATmainsubprogramunitcontainingmainorstartingsubprogram}
+        {Unit containing main or starting subprogram}
+        {unit containing main or starting subprogram}\\
 \DWATmutableTARG
-&\livelinki{chap:DWATmutablemutablepropertyofmemberdata}{Mutable property of member data}{mutable property of member data} \\
+&\livelinki{chap:DWATmutablemutablepropertyofmemberdata}
+        {Mutable property of member data}
+        {mutable property of member data} \\
 \DWATnameTARG
 &\livelinki{chap:DWATnamenameofdeclaration}{Name of declaration}{name of declaration}\\
 &\livelinki{chap:DWATnamepathnameofcompilationsource}{Path name of compilation source}{path name of compilation source} \\
@@ -446,11 +499,15 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATnoreturnTARG
 &\livelinki{chap:DWATnoreturnofsubprogram}{\doublequote{no return} property of a subprogram}{noreturn attribute} \\
 \DWATobjectpointerTARG
-&\livelinki{chap:DWATobjectpointerobjectthisselfpointerofmemberfunction}{Object (\texttt{this}, \texttt{self}) pointer of member function}{object (\texttt{this}, \texttt{self}) pointer of member function}\\
+&\livelinki{chap:DWATobjectpointerobjectthisselfpointerofmemberfunction}
+        {Object (\texttt{this}, \texttt{self}) pointer of member function}
+        {object (\texttt{this}, \texttt{self}) pointer of member function}\\
 \DWATorderingTARG
 &\livelinki{chap:DWATorderingarrayrowcolumnordering}{Array row/column ordering} {array row/column ordering}\\
 \DWATpicturestringTARG
-&\livelinki{chap:DWATpicturestringpicturestringfornumericstringtype}{Picture string for numeric string type}{picture string for numeric string type} \\
+&\livelinki{chap:DWATpicturestringpicturestringfornumericstringtype}
+        {Picture string for numeric string type}
+        {picture string for numeric string type} \\
 \DWATpriorityTARG
 &\livelinki{chap:DWATprioritymodulepriority}{Module priority}{module priority}\\
 \DWATproducerTARG
@@ -460,13 +517,17 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATpureTARG
 &\livelinki{chap:DWATpurepurepropertyofasubroutine}{Pure property of a subroutine}{pure property of a subroutine} \\
 \DWATrangesTARG
-&\livelinki{chap:DWATrangesnoncontiguousrangeofcodeaddresses}{Non-contiguous range of code addresses}{non-contiguous range of code addresses} \\
+&\livelinki{chap:DWATrangesnoncontiguousrangeofcodeaddresses}
+        {Non-contiguous range of code addresses}
+        {non-contiguous range of code addresses} \\
 \DWATrangesbaseTARG
 &\livelinki{chap:DWATrangesbaseforrangelists}{Base offset for range lists}{ranges lists} \\
 \DWATrankTARG
 &\livelinki{chap:DWATrankofdynamicarray}{Dynamic number of array dimensions}{dynamic number of array dimensions} \\
 \DWATrecursiveTARG
-&\livelinki{chap:DWATrecursiverecursivepropertyofasubroutine}{Recursive property of a subroutine}{recursive property of a subroutine} \\
+&\livelinki{chap:DWATrecursiverecursivepropertyofasubroutine}
+        {Recursive property of a subroutine}
+        {recursive property of a subroutine} \\
 \DWATreferenceTARG
 &\livelink{chap:DWATreferenceofnonstaticmember}
           {\&-qualified non-static member function} \textit{(\addtoindex{C++})} \\
@@ -510,11 +571,13 @@ The attributes are listed in Table \referfol{tab:attributenames}.
            {String length of string type}
            {string length of string type} \\
 \DWATstringlengthbitsizeTARG
-&\livelinki{chap:DWATstringlengthstringlengthofstringtype}{Size of string length of string type}{string length of string type!size of}
- \\
+&\livelinki{chap:DWATstringlengthstringlengthofstringtype}
+           {Size of string length of string type}
+           {string length of string type!size of} \\
 \DWATstringlengthbytesizeTARG
-&\livelinki{chap:DWATstringlengthstringlengthofstringtype}{Size of string length of string type}{string length of string type!size of}
- \\
+&\livelinki{chap:DWATstringlengthstringlengthofstringtype}
+           {Size of string length of string type}
+           {string length of string type!size of} \\
 \DWATstroffsetsbaseTARG
 &\livelinki{chap:DWATstroffsetbaseforindirectstringtable}{Base of string offsets table}{string offsets table} \\
 \DWATthreadsscaledTARG
@@ -529,11 +592,17 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATupperboundTARG
 &\livelinki{chap:DWATupperboundupperboundofsubrange}{Upper bound of subrange}{upper bound of subrange} \\
 \DWATuselocationTARG
-&\livelinki{chap:DWATuselocationmemberlocationforpointertomembertype}{Member location for pointer to member type}{member location for pointer to member type} \\
+&\livelinki{chap:DWATuselocationmemberlocationforpointertomembertype}
+        {Member location for pointer to member type}
+        {member location for pointer to member type} \\
 \DWATuseUTFeightTARG\addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8}
-&\livelinki{chap:DWATuseUTF8compilationunitusesutf8strings}{Compilation unit uses UTF-8 strings}{compilation unit uses UTF-8 strings} \\
+&\livelinki{chap:DWATuseUTF8compilationunitusesutf8strings}
+        {Compilation unit uses UTF-8 strings}
+        {compilation unit uses UTF-8 strings} \\
 \DWATvariableparameterTARG
-&\livelinki{chap:DWATvariableparameternonconstantparameterflag}{Non-constant parameter flag}{non-constant parameter flag}  \\
+&\livelinki{chap:DWATvariableparameternonconstantparameterflag}
+        {Non-constant parameter flag}
+        {non-constant parameter flag}  \\
 \DWATvirtualityTARG
 &\livelinki{chap:DWATvirtualityvirtualityindication}{Virtuality indication}{virtuality indication} \\
 &\livelinki{chap:DWATvirtualityvirtualityofbaseclass}{Virtuality of base class} {virtuality of base class} \\
@@ -541,7 +610,9 @@ The attributes are listed in Table \referfol{tab:attributenames}.
 \DWATvisibilityTARG
 &\livelinki{chap:DWATvisibilityvisibilityofdeclaration}{Visibility of declaration}{visibility of declaration} \\
 \DWATvtableelemlocationTARG
-&\livelinki{chap:DWATvtableelemlocationvirtualfunctiontablevtableslot}{Virtual function vtable slot}{virtual function vtable slot}\\
+&\livelinki{chap:DWATvtableelemlocationvirtualfunctiontablevtableslot}
+        {Virtual function vtable slot}
+        {virtual function vtable slot}\\
 \end{longtable}
 
 \addtoindexx{address|see {\textit{also} address class}}
@@ -681,7 +752,7 @@ entry in any compilation unit, including one different from
 the unit containing the reference. The third type of reference
 is an indirect reference to a 
 \addtoindexx{type signature}
-type definition using a 64\dash bit \mbox{signature} 
+type definition using a 64-bit \mbox{signature} 
 for that type. The fourth type of reference is a reference from within the 
 \dotdebuginfo{} section of the executable or shared object to
 a debugging information entry in the \dotdebuginfo{} section of 
@@ -796,7 +867,7 @@ the DWARF information.
 
 \textit{%
 For example, if a particular target architecture supports
-both 32\dash bit and 64\dash bit addresses, the compiler will generate
+both 32-bit and 64-bit addresses, the compiler will generate
 an object file which specifies that it contains executable
 code generated for one or the other of these 
 \addtoindexx{size of an address}
@@ -892,11 +963,11 @@ on the target machine.
 \itembfnl{\DWOPconstoneuTARG, \DWOPconsttwouTARG, \DWOPconstfouruTARG, \DWOPconsteightuTARG}
 \DWOPconstnxMARK{}
 The single operand of a \DWOPconstnuNAME{} operation provides a 1,
-2, 4, or 8\dash byte unsigned integer constant, respectively.
+2, 4, or 8-byte unsigned integer constant, respectively.
 
 \itembfnl{\DWOPconstonesTARG, \DWOPconsttwosTARG, \DWOPconstfoursTARG, \DWOPconsteightsTARG}
 The single operand of a \DWOPconstnsNAME{} operation provides a 1,
-2, 4, or 8\dash byte signed integer constant, respectively.
+2, 4, or 8-byte signed integer constant, respectively.
 
 \itembfnl{\DWOPconstuTARG}
 The single operand of the \DWOPconstuNAME{} operation provides
@@ -930,6 +1001,7 @@ require link-time relocation but should not be
 interpreted by the consumer as a relocatable address
 (for example, offsets to thread-local storage).}
 
+\needlines{12}
 \itembfnl{\DWOPconsttypeTARG}
 The \DWOPconsttypeNAME{} operation takes three operands. The first operand 
 is an unsigned LEB128 integer that represents the offset of a debugging
@@ -982,6 +1054,7 @@ The \DWOPbregxNAME{} operation has two operands: a register
 which is specified by an unsigned LEB128\addtoindexx{LEB128!unsigned}
 number, followed by a signed LEB128\addtoindexx{LEB128!signed} offset.
 
+\needlines{8}
 \itembfnl{\DWOPregvaltypeTARG}
 The \DWOPregvaltypeNAME{} operation takes two operands. The first 
 operand is an unsigned LEB128\addtoindexx{LEB128!unsigned} number, 
@@ -1027,7 +1100,7 @@ identifier) at the top of the stack.
 
 \itembfnl{\DWOPpickTARG}
 The single operand of the \DWOPpickNAME{} operation provides a
-1\dash byte index. A copy of the stack entry (including its 
+1-byte index. A copy of the stack entry (including its 
 type identifier) with the specified
 index (0 through 255, inclusive) is pushed onto the stack.
 
@@ -1037,6 +1110,7 @@ in the stack at the top of the stack.
 This is equivalent to a
 \DWOPpick{} operation, with index 1.  
 
+\needlines{4}
 \itembfnl{\DWOPswapTARG}
 The \DWOPswapNAME{} operation swaps the top two stack entries. 
 The entry at the top of the stack (including its type identifier)
@@ -1070,7 +1144,7 @@ The value retrieved from that address is pushed, together with the
 special address type identifier. In
 the \DWOPderefsizeNAME{} operation, however, the size in bytes
 of the data retrieved from the dereferenced address is
-specified by the single operand. This operand is a 1\dash byte
+specified by the single operand. This operand is a 1-byte
 unsigned integral constant whose value may not be larger
 than the \addtoindex{size of an address} on the target machine. The data
 retrieved is zero extended to the size of an address on the
@@ -1124,7 +1198,7 @@ new stack top. In the \DWOPxderefsizeNAME{} operation, however,
 the size in bytes of the data retrieved from the 
 \addtoindexi{dereferenced}{address!dereference operator}
 address is specified by the single operand. This operand is a
-1\dash byte unsigned integral constant whose value may not be larger
+1-byte unsigned integral constant whose value may not be larger
 than the \addtoindex{size of an address} on the target machine. The data
 retrieved is zero extended to the \addtoindex{size of an address} on the
 target machine before being pushed onto the expression stack together
@@ -1356,18 +1430,18 @@ than), \DWOPgtNAME{} (greater than) and \DWOPneNAME{} (not equal to).
 \needlines{6}
 \itembfnl{\DWOPskipTARG}
 \DWOPskipNAME{} is an unconditional branch. Its single operand
-is a 2\dash byte signed integer constant. The 2\dash byte constant is
+is a 2-byte signed integer constant. The 2-byte constant is
 the number of bytes of the DWARF expression to skip forward
 or backward from the current operation, beginning after the
-2\dash byte constant.
+2-byte constant.
 
 \itembfnl{\DWOPbraTARG}
 \DWOPbraNAME{} is a conditional branch. Its single operand is a
-2\dash byte signed integer constant.  This operation pops the
+2-byte signed integer constant.  This operation pops the
 top of stack. If the value popped is not the constant 0,
-the 2\dash byte constant operand is the number of bytes of the
+the 2-byte constant operand is the number of bytes of the
 DWARF expression to skip forward or backward from the current
-operation, beginning after the 2\dash byte constant.
+operation, beginning after the 2-byte constant.
 
 % The following item does not correctly hyphenate leading
 % to an overfull hbox and a visible artifact. 
@@ -1379,12 +1453,12 @@ and \DWOPcallrefNAME{} perform
 DWARF procedure calls during evaluation of a DWARF expression or
 location description. 
 For \DWOPcalltwoNAME{} and \DWOPcallfourNAME{}, 
-the operand is the 2\dash~ or 4\dash byte unsigned offset, respectively,
+the operand is the 2\dash~ or 4-byte unsigned offset, respectively,
 of a debugging information entry in the current compilation
 unit. The \DWOPcallrefNAME{} operator has a single operand. In the
 \thirtytwobitdwarfformat,
-the operand is a 4\dash byte unsigned value;
-in the \sixtyfourbitdwarfformat, it is an 8\dash byte unsigned value
+the operand is a 4-byte unsigned value;
+in the \sixtyfourbitdwarfformat, it is an 8-byte unsigned value
 (see Section \referfol{datarep:32bitand64bitdwarfformats}). 
 The operand is used as the offset of a
 debugging information entry in a 
@@ -1795,8 +1869,7 @@ register but not in memory. The operations in this section are
 used to describe values that exist neither in memory nor in a
 single register.}
 
-\paragraph{Empty Location Descriptions}
-
+\subsubsubsection{Empty Location Descriptions}
 An \addtoindex{empty location description}
 consists of a DWARF expression
 \addtoindexx{location description!empty}
@@ -2140,6 +2213,7 @@ identifies the type of entry. There are five types of entries:
 This entry indicates the end of a location list, and
 contains no further data.
 
+\needlines{6}
 \itembfnl{\DWLLEbaseaddressselectionentryTARG}
 This entry contains an 
 unsigned LEB128\addtoindexx{LEB128!unsigned} value immediately
@@ -2187,7 +2261,7 @@ range for which this location is valid. A single location
 description follows the fields that define the address range.
 \end{enumerate}
 
-
+\needlines{10}
 \section{Types of Program Entities}
 \label{chap:typesofprogramentities}
 \hypertarget{chap:DWATtypetypeofdeclaration}{}
@@ -2381,11 +2455,11 @@ has been specified.
 Name&Value&Meaning  \\
 \hline
 \textit{DW\_ADDR\_none}&   0 & \textit{no class specified} \\
-\textit{DW\_ADDR\_near16}& 1 & \textit{16\dash bit offset, no segment} \\
-\textit{DW\_ADDR\_far16}&  2 & \textit{16\dash bit offset, 16\dash bit segment} \\
-\textit{DW\_ADDR\_huge16}& 3 & \textit{16\dash bit offset, 16\dash bit segment} \\
-\textit{DW\_ADDR\_near32}& 4 & \textit{32\dash bit offset, no segment} \\
-\textit{DW\_ADDR\_far32}&  5 & \textit{32\dash bit offset, 16\dash bit segment} \\
+\textit{DW\_ADDR\_near16}& 1 & \textit{16-bit offset, no segment} \\
+\textit{DW\_ADDR\_far16}&  2 & \textit{16-bit offset, 16-bit segment} \\
+\textit{DW\_ADDR\_huge16}& 3 & \textit{16-bit offset, 16-bit segment} \\
+\textit{DW\_ADDR\_near32}& 4 & \textit{32-bit offset, no segment} \\
+\textit{DW\_ADDR\_far32}&  5 & \textit{32-bit offset, 16-bit segment} \\
 \hline
 \end{tabular}
 \end{table}
@@ -2538,13 +2612,10 @@ debugging information entry
 \addtoindexx{identifier names}
 representing 
 \addtoindexx{names!identifier}
-a program entity
-that has been given a name may have a 
-\DWATname{} attribute,
-whose 
-\addtoindexx{name attribute}
-value is a \livelink{chap:classstring}{string} 
-representing the name as it appears in
+a program entity that has been given a name may have a 
+\DWATname{} 
+attribute\addtoindexx{name attribute}, whose value of 
+\CLASSstring{} represents the name as it appears in
 the source program. A debugging information entry containing
 no name attribute, or containing a name attribute whose value
 consists of a name containing a single null byte, represents
@@ -2951,14 +3022,11 @@ attribute is interpreted in bits.
 \label{chap:linkagenames}
 \textit{Some language implementations, notably 
 \addtoindex{C++} and similar
-languages, 
-make use of implementation-defined names within
-object files that are different from the identifier names
-(see Section \refersec{chap:identifiernames}) of entities as they appear in the
-source. Such names, sometimes known 
-\addtoindexx{names!mangled}
-as 
-\addtoindex{mangled names},
+languages, make use of implementation-defined names within
+object files that are different from the \addtoindex{identifier names}
+(see Section \refersec{chap:identifiernames}) of entities as they 
+appear in the source. Such names, sometimes known as 
+\addtoindex{mangled names}\addtoindexx{names!mangled},
 are used in various ways, such as: to encode additional
 information about an entity, to distinguish multiple entities
 that have the same name, and so on. When an entity has an
@@ -2971,14 +3039,12 @@ that is encoded in the linkage name itself.
 }
 
 % Some trouble maybe with hbox full, so we try optional word breaks.
-A debugging
-information entry may have 
+A debugging information entry may have 
 \addtoindexx{linkage name attribute}
 a 
 \DWATlinkagename{}
-attribute
-whose value is a null-terminated string describing the object
-file linkage name associated with the corresponding entity.
+attribute whose value is a null-terminated string containing the 
+object file linkage name associated with the corresponding entity.
 
 % Some trouble here with hbox full, so we try optional word breaks.
 \textit{Debugging information entries to which \DWATlinkagename{}
index afea12e..f50b594 100644 (file)
@@ -478,7 +478,7 @@ The operator of an MMC Site may republish an MMC contained in
 the site under CC-BY-SA on the same site at any time before
 August 1, 2009, provided the MMC is eligible for relicensing.
 
-
+\vspace{0.7cm}
 \textbf{\Large{ADDENDUM: How to use this License for your documents}}
 
 To use this License in a document you have written, include
index 84132a7..5968ac4 100644 (file)
@@ -162,17 +162,20 @@ and improving link times.
 a much more compact \dotdebugmacro{} representation.
 \item Replace the \dotdebugpubnames{} and \dotdebugtypes{} sections
 with a single and more functional name index section, \dotdebugnames{}.
-\item Add a new debugging information entry, related attributes and
-DWARF expression operators, to describe call information, 
+\item Add a new debugging information entry (\DWTAGcallsiteNAME) and related 
+attributes and DWARF expression operators to describe call site information, 
 including identification of tail calls and tail recursion.
 This facilitates debugging of optimized code.
+\item Add improved support for \addtoindex{FORTRAN} assumed rank arrays 
+(\DWTAGgenericsubrangeNAME), dynamic rank arrays (\DWATrankNAME)
+and co-arrays (\DWTAGcoarraytypeNAME{}).
+\item Add a new option to allow debuggers and other DWARF consumers to
+support a DWARF expression stack containing typed values.
+\item Add improved support for the \addtoindex{C++} \texttt{auto}
+return type, deleted member functions (\DWATdeletedNAME), as well as defaulted 
+constructors and destructors (\DWATdefaultedNAME).
 \item Add a new attribute, \DWATnoreturnNAME{}, to identify 
 a subprogram that does not return to its caller.
-\item Add a new attribute, \DWATrankNAME{}, to describe the 
-dimensionality of an array with dynamic rank.
-\item Add a new tag, \DWTAGgenericsubrangeNAME{}, to describe the
-bounds of Fortran assumed-rank arrays.
-\item Add a new tag, \DWTAGcoarraytypeNAME{}, to describe Fortran co-arrays.
 \item Add language codes for C 2011, C++ 2003, C++ 2011, C++ 2014,
 Dylan, Fortran 2003, Fortran 2008, Go, Haskell, 
 Julia, Modula 3, Ocaml, Rust, OpenCL and Swift.
@@ -189,6 +192,7 @@ DWARF Version 5 is compatible with DWARF Version 4 except as follows:
 (Because a pre-DWARF Version 5 consumer will not be able to interpret 
 these even to ignore and skip over them, such new forms must be 
 considered incompatible.)
+\needlines{4}
 \item A location list entry (see Section \refersec{chap:locationlists}) 
 with the address range \mbox{(0, \textit{maximum-address})} is defined 
 as the new default location list entry.
@@ -335,6 +339,7 @@ processing the DWARF information. The definers believe that the
 reduction in I/O and in memory paging should more than make
 up for any increase in processing time.  
 
+\needlines{5}
 The representation
 of information changed from Version 1 to Version 2, so that
 Version 2 DWARF information is not binary compatible with
index 194be98..6cb303e 100644 (file)
@@ -233,6 +233,7 @@ The standard attributes are:
 \item Type hash, an 8-byte hash of the type declaration.
 \end{itemize}
 
+\needlines{6}
 It is possible that an indexed DIE has a parent that is not
 indexed (for example, if its parent does not have a name attribute). In
 such a case, a parent attribute may point to a nameless index
@@ -318,38 +319,39 @@ The section header contains the following fields:
 The length of this contribution to the name index section,
 not including the length field itself.
 
-\item \texttt{version} (\addtoindex{uhalf}) \\
+\item \texttt{version} (\HFTuhalf) \\
 A version number\addtoindexx{version number!name index table} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 This number is specific to the name index table and is
 independent of the DWARF version number.
 
-\item \textit{padding} (\addtoindex{uhalf}) \\
+\item \textit{padding} (\HFTuhalf) \\
+Reserved to DWARF.
 
-\item \texttt{comp\_unit\_count} (4-byte unsigned integer) \\
+\item \texttt{comp\_unit\_count} (\HFTuword) \\
 The number of CUs in the CU list.
 
-\item \texttt{local\_type\_unit\_count} (4-byte unsigned integer) \\
+\item \texttt{local\_type\_unit\_count} (\HFTuword) \\
 The number of TUs in the first TU list.
 
-\item \texttt{foreign\_type\_unit\_count} (4-byte unsigned integer) \\
+\item \texttt{foreign\_type\_unit\_count} (\HFTuword) \\
 The number of TUs in the second TU list.
 
-\item \texttt{bucket\_count} (4-byte unsigned integer) \\
+\item \texttt{bucket\_count} (\HFTuword) \\
 The number of hash buckets in the hash lookup table. 
 If there is no hash lookup table, this field contains 0.
 
-\item \texttt{name\_count} (4-byte unsigned integer) \\
+\item \texttt{name\_count} (\HFTuword) \\
 The number of unique names in the index.
 
-\item \texttt{abbrev\_table\_size} (4-byte unsigned integer) \\
+\item \texttt{abbrev\_table\_size} (\HFTuword) \\
 The size in bytes of the abbreviations table.
 
-\item \texttt{augmentation\_string\_size} (4-byte unsigned integer) \\
+\item \texttt{augmentation\_string\_size} (\HFTuword) \\
 The size in bytes of the augmentation string. This value should be
 rounded up to a multiple of 4.
 
-\item \texttt{augmentation\_string} (sequence of characters) \\
+\item \texttt{augmentation\_string} (\HFTaugstring) \\
 A vendor-specific augmentation string, which provides additional 
 information about the contents of this index. If provided, the string
 should begin with a 4-character vendor ID. The remainder of the
@@ -361,7 +363,6 @@ four bytes in length.
 \end{enumerate}
 
 \subsubsubsection{List of CUs}
-
 The list of CUs immediately follows the header. Each entry in the list
 is a section offset. In the DWARF-32 format, a section offset is 4
 bytes, while in the DWARF-64 format, a section offset is 8 bytes.
@@ -370,7 +371,6 @@ The total number of entries in the list is given by \texttt{comp\_unit\_count}.
 There must be at least one CU.
 
 \subsubsubsection{List of Local TUs}
-
 The list of local TUs immediately follows the list of CUs. Each entry
 in the list is a section offset. In the DWARF-32 format, a section
 offset is 4 bytes, while in the DWARF-64 format, a section offset is 8
@@ -380,7 +380,6 @@ The total number of entries in the list is given by
 \texttt{local\_type\_unit\_count}. This list may be empty.
 
 \subsubsubsection{List of Foreign TUs}
-
 The list of foreign TUs immediately follows the list of local TUs.
 Each entry in the list is an 8-byte type signature (as described by
 \DWFORMrefsigeight).
@@ -388,8 +387,8 @@ Each entry in the list is an 8-byte type signature (as described by
 The number of entries in the list is given by \texttt{foreign\_type\_unit\_count}.
 This list may be empty.
 
+\needlines{4}
 \subsubsubsection{Hash Lookup Table}
-
 The optional hash lookup table immediately follows the list of type signatures.
 
 The hash lookup table is actually two separate arrays: an array of
@@ -426,7 +425,6 @@ that entry in the hashes array is used to find the corresponding entry
 in the name table.
 
 \subsubsubsection{Name Table}
-
 The name table immediately follows the hash lookup table. The name
 table is laid out in column-major order (that is, the first column,
 followed by the second column). Each entry in the first column
@@ -447,7 +445,6 @@ If there is no hash lookup table, there is no ordering or grouping
 requirement for the name table.
 
 \subsubsubsection{Abbreviations Table}
-
 The abbreviations table immediately follows the name table. Like the
 abbreviations table for debugging information entries, this table
 consists of a series of abbreviation declarations. Its size is given
@@ -501,7 +498,6 @@ byte for the abbreviation code. The size of the table given by
 terminating 0 byte.
 
 \subsubsubsection{Entry Pool}
-
 The entry pool immediately follows the abbreviations table. The second
 column of each row of the name table points to an offset in the entry
 pool, where a series of index entries for that name is located.
@@ -537,7 +533,7 @@ Each set begins with a header containing five values:
 The length of this contribution to the address lookup section,
 not including the length field itself.
 
-\item \texttt{version} (\addtoindex{uhalf}) \\
+\item \texttt{version} (\HFTuhalf) \\
 A version number\addtoindexx{version number!address lookup table} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 This number is specific to the address lookup table and is
@@ -549,7 +545,7 @@ The offset from the
 beginning of the \dotdebuginfo{} section of the
 compilation unit header referenced by the set.
 
-\item \texttt{address\_size} (\addtoindex{ubyte}) \\
+\item \texttt{address\_size} (\HFTubyte) \\
 The \addtoindex{size of an address}
 in bytes on
 \addttindexx{address\_size}
@@ -558,7 +554,7 @@ the target architecture. For
 segmented addressing, this is
 the size of the offset portion of the address.
 
-\item \texttt{segment\_size} (\addtoindex{ubyte}) \\
+\item \texttt{segment\_size} (\HFTubyte) \\
 The size of a segment selector in
 \addttindexx{segment\_size}
 bytes on the target architecture. If the target system uses
@@ -616,7 +612,7 @@ set (for example, the ARM
 and 
 MIPS architectures support
 \addtoindexx{MIPS instruction set architecture}
-a 32\dash bit as well as a 16\dash bit instruction set). Because the
+a 32-bit as well as a 16-bit instruction set). Because the
 instruction set is a function of the program counter, it is
 convenient to encode the applicable instruction set in the
 \dotdebugline{} section as well.}
@@ -810,13 +806,13 @@ The state machine instructions in a line number program belong to one of three c
 
 \begin{enumerate}[1. ]
 \item special opcodes \\
-These have a \addtoindex{ubyte} opcode field and no operands.\vspace{1ex}
+These have a \HFTubyte opcode field and no operands.\vspace{1ex}
 
 \textit{Most of the instructions in a 
 line number program are special opcodes.}
 
 \item standard opcodes \\
-These have a \addtoindex{ubyte} opcode field which may be followed by zero or more
+These have a \HFTubyte opcode field which may be followed by zero or more
 \addtoindex{LEB128} operands (except for 
 \mbox{\DWLNSfixedadvancepc,} see below).
 The opcode implies the number of operands and their meanings, but the
@@ -828,7 +824,7 @@ each standard opcode.
 These have a multiple byte format. The first byte is zero; the next bytes
 are an unsigned LEB128\addtoindexx{LEB128!unsigned} integer giving the number of bytes in the
 instruction itself (does not include the first zero byte or the size). The
-remaining bytes are the instruction itself (which begins with a \addtoindex{ubyte}
+remaining bytes are the instruction itself (which begins with a \HFTubyte
 extended opcode). \\
 \end{enumerate}
 
@@ -852,14 +848,14 @@ The size in bytes of the line number information for this
 compilation unit, not including the length field itself
 (see Section \refersec{datarep:initiallengthvalues}). 
 
-\item \texttt{version} (\addtoindex{uhalf}) \\
+\item \texttt{version} (\HFTuhalf) \\
 A version number\addtoindexx{version number!line number information} 
 (see Section \refersec{datarep:linenumberinformation}). 
 This number is specific to
 the line number information and is independent of the DWARF
 version number. 
 
-\item \texttt{address\_size} (ubyte)\\
+\item \texttt{address\_size} (\HFTubyte)\\
 A 1-byte unsigned integer containing the size in bytes of an
 address (or offset portion of an address for segmented addressing)
 on the target system.
@@ -869,7 +865,7 @@ It is needed to legitimize the common practice of stripping all but
 the line number sections (\dotdebugline{} and \dotdebuglinestr{}) 
 from an executable.}
 
-\item \texttt{segment\_size} (ubyte) \\
+\item \texttt{segment\_size} (\HFTubyte) \\
 \addttindexx{segment\_size}
 A 1-byte unsigned integer containing the size in bytes of a segment
 selector on the target system.
@@ -883,12 +879,12 @@ system.}
 \item \texttt{header\_length}  \\
 The number of bytes following the \addttindex{header\_length} field to the
 beginning of the first byte of the line number program itself.
-In the \thirtytwobitdwarfformat, this is a 4\dash byte unsigned
+In the \thirtytwobitdwarfformat, this is a 4-byte unsigned
 length; in the \sixtyfourbitdwarfformat, this field is an
-8\dash byte unsigned length 
+8-byte unsigned length 
 (see Section \refersec{datarep:32bitand64bitdwarfformats}). 
 
-\item \texttt{minimum\_instruction\_length} (\addtoindex{ubyte})  \\
+\item \texttt{minimum\_instruction\_length} (\HFTubyte)  \\
 \addttindexx{minimum\_instruction\_length}
 The size in bytes of the smallest target machine
 instruction. Line number program opcodes that alter
@@ -898,7 +894,7 @@ registers use this and
 (see following) in their calculations. 
 
 \needlines{9}
-\item \texttt{maximum\_operations\_per\_instruction} (\addtoindex{ubyte}) \\
+\item \texttt{maximum\_operations\_per\_instruction} (\HFTubyte) \\
 The 
 \addttindexx{maximum\_operations\_per\_instruction}
 maximum number of individual operations that may be
@@ -913,7 +909,7 @@ architectures, this field is 1, the \addttindex{op\_index} register is always
 0, and the operation pointer is simply the \texttt{address} register.
 
 \needlines{4}
-\item \texttt{default\_is\_stmt} (\addtoindex{ubyte}) \\
+\item \texttt{default\_is\_stmt} (\HFTubyte) \\
 \addttindexx{default\_is\_stmt}
 The initial value of the \addttindex{is\_stmt} register.  
 
@@ -940,16 +936,16 @@ constitute such a recommendation and
 be either \doublequote{true} or \doublequote{false.} This approach might be
 used as part of support for debugging optimized code.}
 
-\item \texttt{line\_base} (\addtoindex{sbyte}) \\
+\item \texttt{line\_base} (\HFTsbyte) \\
 \addttindexx{line\_base}
 This parameter affects the meaning of the special opcodes. See below.
 
-\item \texttt{line\_range} (\addtoindex{ubyte}) \\
+\item \texttt{line\_range} (\HFTubyte) \\
 \addttindexx{line\_range}
 This parameter affects the meaning of the special opcodes. See below.
 
 \needlines{4}
-\item \texttt{opcode\_base} (\addtoindex{ubyte}) \\
+\item \texttt{opcode\_base} (\HFTubyte) \\
 The 
 \addttindexx{opcode\_base}
 number assigned to the first special opcode.
@@ -974,7 +970,7 @@ that of the highest standard opcode and the first special
 opcode (not inclusive) are used for vendor specific extensions.}
 
 \needlines{4}
-\item \texttt{standard\_opcode\_lengths} (array of \addtoindex{ubyte}) \\
+\item \texttt{standard\_opcode\_lengths} (array of \HFTubyte) \\
 \addttindexx{standard\_opcode\_lengths}
 This array specifies the number of \addtoindex{LEB128} operands for each
 of the standard opcodes. The first element of the array
@@ -1020,7 +1016,7 @@ goals:}
 \begin{enumerate}[1. ]
 %%% Resume enumeration count where it left off above
 \setcounter{enumi}{\value{saveenumi}}
-\item \texttt{directory\_entry\_format\_count} (ubyte) \\
+\item \texttt{directory\_entry\_format\_count} (\HFTubyte) \\
 \addttindexx{directory\_entry\_format\_count}
     A count of the number of entries that occur in the
     following \addttindex{directory\_entry\_format} field.
@@ -1075,7 +1071,7 @@ common practice of stripping all but the line number sections
 both the compilation unit DIE and the line number header can
 share a single copy of the current directory name string.}
 
-\item \texttt{file\_name\_entry\_format\_count} (ubyte) \\
+\item \texttt{file\_name\_entry\_format\_count} (\HFTubyte) \\
 \addttindexx{file\_name\_entry\_format\_count}
 A count of the number of file entry format entries that
 occur in the following \addttindex{file\_name\_entry\_format} field. 
@@ -1264,7 +1260,7 @@ scheduling or other optimization.)
 
 \subsubsection{Special Opcodes} 
 \label{chap:specialopcodes}
-Each \addtoindex{ubyte} special opcode has the following effect on the state machine:
+Each \HFTubyte special opcode has the following effect on the state machine:
 
 \begin{enumerate}[1. ]
 
@@ -1515,7 +1511,7 @@ or more bytes.}
 
 \item \textbf{\DWLNSfixedadvancepcTARG} \\ 
 The \DWLNSfixedadvancepcTARG{} opcode
-takes a single \addtoindex{uhalf} (unencoded) operand and adds it to the
+takes a single \HFTuhalf (unencoded) operand and adds it to the
 \texttt{address} register of the state machine and sets the \addttindex{op\_index}
 register to 0. This is the only standard opcode whose operand
 is \textbf{not} a variable length number. It also does 
@@ -1684,12 +1680,12 @@ given compilation unit ends with an entry containing an opcode of 0.
 The macro information header contains the following fields:
 
 \begin{enumerate}[1. ]
-\item \texttt{version} (uhalf) \\
+\item \texttt{version} (\HFTuhalf) \\
 A version number (see Section \refersec{datarep:macroinformation}).
 This number is specific to the macro information and is independent
 of the DWARF version number.
 
-\item \texttt{flags} (ubyte) \\
+\item \texttt{flags} (\HFTubyte) \\
 The bits of the \texttt{flags} field are interpreted as a set
 of flags, some of which may indicate that additional fields follow.
 The following flags, beginning with the least significant bit, are defined:
@@ -1765,6 +1761,7 @@ Name&Meaning\\ \hline
 \end{tabular}
 \end{table}
 
+\needlines{6}
 \subsubsection{Define and Undefine Entries}
 \label{chap:defineandundefineentries}
 The define and undefine macro entries have multiple forms that
@@ -1773,6 +1770,7 @@ use different representations of their two operands.
 While described in pairs below, the forms of define 
 and undefine entries may be freely intermixed.
 
+\needlines{6}
 \subsubsubsection{Define and Undefine Using Direct Strings}
 \label{chap:defineandundefinedirectentries}
 A \DWMACROdefineTARG{} or
@@ -2179,14 +2177,14 @@ integral multiple of the address size.
 \item  \texttt{CIE\_id} (4 or 8 bytes, see Section \refersec{datarep:32bitand64bitdwarfformats}) \\
 A constant that is used to distinguish CIEs from FDEs.
 
-\item  \texttt{version} (\addtoindex{ubyte}) \\
+\item  \texttt{version} (\HFTubyte) \\
 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.
 
 \needlines{8}
-\item  \texttt{augmentation} (\addtoindex{UTF\dash 8} string) \\
+\item  \texttt{augmentation} (\HFTaugstring) \\
 A null\dash terminated UTF\dash 8 string that identifies the augmentation
 to this CIE or to the FDEs that use it. If a reader encounters
 an augmentation string that is unexpected, then only the
@@ -2214,14 +2212,14 @@ any \dotdebuginfo{} section, the augmentation string always uses
 UTF\dash 8 encoding.}
 
 \needlines{4}
-\item  \texttt{address\_size} (\addtoindex{ubyte}) \\
+\item  \texttt{address\_size} (\HFTubyte) \\
 The size of a target address
 \addttindexx{address\_size}
 in this CIE and any FDEs that
 use it, in bytes. If a compilation unit exists for this frame,
 its address size must match the address size here.
 
-\item  \texttt{segment\_size} (\addtoindex{ubyte}) \\
+\item  \texttt{segment\_size} (\HFTubyte) \\
 The \addttindexx{segment\_size}
 size of a segment selector in this CIE and any FDEs that
 use it, in bytes.
@@ -2252,7 +2250,7 @@ that this column might not correspond to an actual machine
 register.
 
 \needlines{8}
-\item \texttt{initial\_instructions} (array of \addtoindex{ubyte}) \\
+\item \texttt{initial\_instructions} (array of \HFTubyte) \\
 A sequence of rules that are interpreted to create the initial
 setting of each column in the table.  
 
@@ -2262,7 +2260,7 @@ is the undefined rule. However, an ABI authoring body or a
 compilation system authoring body may specify an alternate
 default value for any or all columns.
 
-\item \texttt{padding} (array of \addtoindex{ubyte}) \\
+\item \texttt{padding} (array of \HFTubyte) \\
 Enough \DWCFAnop{} instructions to make the size of this entry
 match the length value above.
 \end{enumerate}
@@ -2304,10 +2302,10 @@ number
 \addtoindexx{target address}
 of bytes of program instructions described by this entry.
 
-\item \texttt{instructions} (array of \addtoindex{ubyte}) \\
+\item \texttt{instructions} (array of \HFTubyte) \\
 A sequence of table defining instructions that are described below.
 
-\item \texttt{padding} (array of \addtoindex{ubyte}) \\
+\item \texttt{padding} (array of \HFTubyte) \\
 Enough \DWCFAnop{} instructions 
 to make the size of this entry match the length value above.
 \end{enumerate}
@@ -2381,7 +2379,7 @@ All other values in the new row are initially identical to the
 current row
 
 \item \textbf{\DWCFAadvanceloconeTARG{}} \\
-The \DWCFAadvanceloconeTARG{} instruction takes a single \addtoindex{ubyte}
+The \DWCFAadvanceloconeTARG{} instruction takes a single \HFTubyte
 operand that represents a constant delta. This instruction
 is identical to \DWCFAadvanceloc{} except for the encoding
 and size of the delta operand.
@@ -2389,14 +2387,14 @@ and size of the delta operand.
 \needlines{6}
 \item \textbf{\DWCFAadvanceloctwoTARG} \\
 The \DWCFAadvanceloctwoTARG{} instruction takes a single
-\addtoindex{uhalf}
+\HFTuhalf
 operand that represents a constant delta. This instruction
 is identical to \DWCFAadvanceloc{} except for the encoding
 and size of the delta operand.
 
 \item \textbf{\DWCFAadvancelocfourTARG} \\
 The \DWCFAadvancelocfourTARG{} instruction takes a single
-\addtoindex{uword}
+\HFTuword
 operand that represents a constant delta. This instruction
 is identical to \DWCFAadvanceloc{} except for the encoding
 and size of the delta operand.
index 516c904..a8bc3e0 100644 (file)
@@ -44,6 +44,7 @@ A \addtoindex{partial compilation unit}\addtoindexx{compilation unit!partial}
 is represented by a debugging information entry with the tag 
 \DWTAGpartialunitTARG.
 
+\needlines{6}
 In a simple normal compilation, a single compilation unit with
 the tag 
 \DWTAGcompileunit{} represents a complete object file
@@ -274,7 +275,8 @@ as the values of \DWATname{} attributes
 in debugging information
 entries for the compilation unit reflect the names as they
 appear in the source program. The debugger should be sensitive
-to the case of identifier names when doing identifier lookups.
+to the case of \addtoindex{identifier names} when doing identifier 
+lookups.
 
 \needlines{4}
 \DWIDupcaseTARG{} means that the 
@@ -346,7 +348,9 @@ subroutine of a program.
 \addtoindex{C} uses the name \doublequote{main} to identify
 the main subprogram of a program. Some other languages provide
 similar or other means to identify the main subprogram of
-a program.}
+a program. The \DWATmainsubprogram{} attribute may also be used to
+identify such subprograms (see 
+Section \refersec{chap:generalsubroutineandentrypointinformation}).}
 
 \item A \DWATentrypc{} attribute whose value is the address of the first
 \hypertarget{chap:DWATentrypcofcompileunit}{}
@@ -488,7 +492,7 @@ An object file may contain any number of separate type
 unit entries, each representing a single complete type
 definition. 
 Each \addtoindex{type unit} must be uniquely identified by
-a 64\dash bit signature, stored as part of the type unit, which
+a 64-bit signature, stored as part of the type unit, which
 can be used to reference the type definition from debugging
 information entries in other compilation units and type units.
 
@@ -528,16 +532,17 @@ normal object file with a regular compilation unit entry, the
 type unit entries can simply refer to the line number table
 used by the compilation unit. In a split DWARF object file, where
 the type units are located in a separate DWARF object file,
-the \DWATstmtlist{} attribute refers to a "skeleton"
+the \DWATstmtlist{} attribute refers to a "specialized"
 line number table in the \dotdebuglinedwo{} section, which
 contains only the list of directories and file names. All
 type unit entries in a split DWARF object may (but are not
-required to) refer to the same skeleton line number table.
+required to) refer to the same \addtoindex{specialized line number table}.
 
 \item A \DWATuseUTFeight{} attribute, which is a flag
 whose presence indicates that all strings referred to by this type
-unit entry, its children, and the skeleton line number table, are
-represented using the UTF-8 representation.
+unit entry, its children, and its associated 
+\addtoindex{specialized line number table}, 
+are represented using the UTF-8 representation.
 
 \end{enumerate}
 
@@ -1791,6 +1796,7 @@ the actual parameters for a particular inlined expansion,
 it could be described as a constant value without the need
 for that separate debugging information entry.
 
+\needlines{4}
 \item A concrete instance tree may contain entries which do
 not correspond to entries in the abstract instance tree
 to describe new entities that are specific to a particular
@@ -1836,12 +1842,10 @@ a concrete inlined instance (that is, as references to
 corresponding entries within the associated abstract instance
 tree).
 
-\needlines{5}
 The differences between the DWARF representation of a
 concrete out\dash of\dash line instance of a given subroutine and the
 representation of a concrete inlined instance of that same
 subroutine are as follows:
-
 \begin{enumerate}[1. ]
 \item  The root entry for a concrete out\dash of\dash line instance
 of a given inlined subroutine has the same tag as does its
@@ -2118,6 +2122,7 @@ line, and declaration column attributes, respectively
 coordinates of the subroutine declaration that was called, rather they describe
 the coordinates of the call.}
 
+\needlines{5}
 The call site entry may own \DWTAGcallsiteparameterTARG{} debugging information
 entries\index{call site parameter entry} representing the parameters passed to the call.
 Each such entry has a \DWATlocation{} attribute which is a location expression.
@@ -2167,7 +2172,7 @@ which contains a reference to a \DWTAGformalparameter{} entry,
 attribute describing the parameter's name.
 
 
-
+\needlines{8}
 \section{Lexical Block Entries}
 \label{chap:lexicalblockentries}
 
@@ -2358,6 +2363,7 @@ whose value is the address of the first executable instruction
 of the try or catch block 
 (see Section \refersec{chap:entryaddress}).
 
+\needlines{4}
 Catch \nolink{block} entries have at least one child entry, 
 an entry representing the type of exception accepted by
 that catch \nolink{block}. 
index 3c47a39..50e63d1 100644 (file)
@@ -67,8 +67,8 @@ for the strings in the \dotdebugstrdwo{}{} section.
 \dotdebugmacrodwo{} - Contains macro definition information,
 normally found in the \dotdebugmacro{} section.
 \item
-\dotdebuglinedwo{} - Contains skeleton line number tables for the type
-units in the \dotdebuginfodwo{} section. These tables
+\dotdebuglinedwo{} - Contains \addtoindex{specialized line number table}s 
+for the type units in the \dotdebuginfodwo{} section. These tables
 contain only the directory and filename lists needed to
 interpret \DWATdeclfile{} attributes in the debugging
 information entries. Actual line number tables remain in the
@@ -532,7 +532,7 @@ The split DWARF objects each contain the following sections:
   \dotdebuginfodwo{} (one COMDAT section for each type unit)
   \dotdebuglocdwo
   \dotdebuglinedwo
-  \dotdebugmacro
+  \dotdebugmacrodwo
   \dotdebugstroffsetsdwo
   \dotdebugstrdwo
 \end{alltt}
index 96e6362..722b24f 100644 (file)
@@ -67,7 +67,7 @@ a value of the type.
 
 \needlines{5}
 \textit{For example, the 
-\addtoindex{C} type \texttt{int} on a machine that uses 32\dash bit
+\addtoindex{C} type \texttt{int} on a machine that uses 32-bit
 integers is represented by a base type entry with a name
 attribute whose value is \doublequote{int}, an encoding attribute
 whose value is \DWATEsigned{}
@@ -113,7 +113,7 @@ It replaces the attribute DW\_AT\_bit\_offset
 \addtoindexx{bit offset attribute (Version 3)}
 which used for base
 types as defined in \DWARFVersionIII{} and earlier.
-DW\_AT\_bit\_offset is deprecated
+DW\_AT\_bit\_offset is deprecatedF
 \addtoindexx{DW\_AT\_bit\_offset (deprecated)}
 for use in base types in DWARF Version 4 and later.
 See Section 5.1 in the \DWARFVersionIV{}
@@ -694,8 +694,7 @@ is used, the number of dimensions must be specified using a
 \DWATrank{} attribute. See also Section
 \refersec{chap:DWATrank}.
 
-
-\needlines{5}
+%\needlines{5}
 Other attributes especially applicable to arrays are
 \DWATallocated, 
 \DWATassociated{} and 
@@ -842,7 +841,7 @@ a separate \addtoindex{type unit}
 an incomplete declaration 
 \addtoindexx{incomplete type}
 of that type in the compilation unit may provide
-the unique 64\dash bit signature of the type using 
+the unique 64-bit signature of the type using 
 \addtoindexx{type signature}
 a \DWATsignature{}
 attribute.
@@ -995,6 +994,7 @@ such entry has
 the 
 tag \DWTAGinheritanceTARG.
 
+\needlines{4}
 An inheritance entry 
 \addtoindexx{type attribute}
 has 
@@ -1500,6 +1500,7 @@ 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.
 
+\needlines{6}
 Subroutine entries containing the
 \DWATspecification{} attribute 
 \addtoindexx{specification attribute}