Now all the FORM linkages are in place.
[dwarf-doc.git] / dwarf5 / latexdoc / datarepresentation.tex
index b156429..ff144eb 100644 (file)
@@ -17,12 +17,12 @@ calling conventions and call frame instructions.
 
 The labels denoting the beginning and end of the reserved
 value range for vendor specific extensions consist of the
-appropriate prefix (DW\_TAG, DW\_AT, DW\_END, DW\_ATE, DW\_OP,
-DW\_LANG, DW\_LNE, DW\_CC or DW\_CFA respectively) followed by
+appropriate prefix (DW\-\_TAG, DW\-\_AT, DW\-\_END, DW\-\_ATE, DW\-\_OP,
+DW\-\_LANG, DW\-\_LNE, DW\-\_CC or DW\-\_CFA respectively) followed by
 \_lo\_user or \_hi\_user. 
 \textit{For example, for entry tags, the special
-labels are \livetarg{chap:DWTAGlouser}{DW\_TAG\_lo\_user} and 
-\livetarg{chap:DWTAGhiuser}{DW\_TAG\_hi\_user}.}
+labels are \livetarg{chap:DWTAGlouser}{DW\-\_TAG\-\_lo\-\_user} and 
+\livetarg{chap:DWTAGhiuser}{DW\-\_TAG\-\_hi\-\_user}.}
 Values in the
 range between prefix\_lo\_user and prefix\_hi\_user inclusive,
 are reserved for vendor specific extensions. Vendors may
@@ -35,7 +35,7 @@ between the number of standard line number opcodes and
 the first special line number opcode. However, since the
 number of standard opcodes varies with the DWARF version,
 the range for extensions is also version dependent. Thus,
-DW\_LNS\_lo\_user and DW\_LNS\_hi\_user symbols are not defined.}
+DW\-\_LNS\-\_lo\-\_user and DW\-\_LNS\-\_hi\-\_user symbols are not defined.}
 
 Vendor defined tags, attributes, base type encodings, location
 atoms, language names, line number actions, calling conventions
@@ -194,10 +194,10 @@ format, the value is a 64\dash bit unsigned integer.
 \begin{center}
 \begin{tabular}{lll}
 Form & Role  \\ \hline
-DW\_FORM\_ref\_addr& offset in .debug\_info \\
-DW\_FORM\_sec\_offset& offset in a section other than .debug\_info or .debug\_str \\
-DW\_FORM\_strp&offset in .debug\_str \\
-DW\_OP\_call\_ref&offset in .debug\_info \\
+\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}& offset in .debug\_info \\
+\livetarg{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}& offset in a section other than .debug\_info or .debug\_str \\
+\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}&offset in .debug\_str \\
+DW\-\_OP\-\_call\-\_ref&offset in .debug\_info \\
 \end{tabular}
 \end{center}
 
@@ -249,14 +249,14 @@ the object file. Each such contribution consists of a
 compilation unit header 
 (see Section \refersec{datarep:compilationunitheader}) 
 followed by a
-single \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} debugging
+single \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit} or \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} debugging
 information entry, together with its children.
 
 For each type defined in a compilation unit, a contribution may
 be made to the .debug\_types section of the object file. Each
 such contribution consists of a type unit header 
 (see Section \refersec{datarep:typeunitheader}) 
-followed by a \livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit} entry, together with
+followed by a \livelink{chap:DWTAGtypeunit}{DW\-\_TAG\-\_type\-\_unit} entry, together with
 its children.
 
 Each debugging information entry begins with a code that
@@ -359,7 +359,7 @@ offset portion of an address.
 A 64\dash bit unique signature of the type described in this type
 unit.  
 
-\textit{An attribute that refers(using DW\_FORM\_ref\_sig8) to
+\textit{An attribute that refers(using \livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8}) to
 the primary type contained in this type unit uses this value.}
 
 
@@ -417,11 +417,11 @@ Table \refersec{tab:tagencodings}.
 
 Following the tag encoding is a 1\dash byte value that determines
 whether a debugging information entry using this abbreviation
-has child entries or not. If the value is DW\_CHILDREN\_yes,
+has child entries or not. If the value is DW\-\_CHILDREN\-\_yes,
 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
-abbreviation’s tag encoding is DW\_CHILDREN\_no, the next
+abbreviation’s tag encoding is DW\-\_CHILDREN\-\_no, the next
 physically succeeding entry of any debugging information entry
 using this abbreviation is a sibling of that entry. (Either
 the first child or sibling entries may be null entries). The
@@ -440,7 +440,8 @@ is an unsigned LEB128 number representing the attribute’s
 form. The series of attribute specifications ends with an
 entry containing 0 for the name and 0 for the form.
 
-The attribute form DW\_FORM\_indirect is a special case. For
+The attribute form 
+\livetarg{chap:DWFORMindirect}{DW\-\_FORM\-\_indirect} is a special case. For
 attributes with this form, the attribute value itself in the
 .debug\_info or .debug\_types section begins with an unsigned
 LEB128 number that represents its form. This allows producers
@@ -467,17 +468,17 @@ 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 DW\_FORM\_sec\_offset is a member of more than one class,
+Form \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset} is a member of more than one class,
 namely \livelink{chap:lineptr}{lineptr}, \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr} or \livelink{chap:rangelistptr}{rangelistptr}; the list
 of classes allowed by the applicable attribute in 
 Table \refersec{tab:attributeencodings}
 determines the class of the form.
 
-\textit{In DWARF V3 the forms DW\_FORM\_data4 and DW\_FORM\_data8 were
+\textit{In DWARF V3 the forms \livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and \livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} were
 members of either class constant or one of the classes \livelink{chap:lineptr}{lineptr},
 \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr} or \livelink{chap:rangelistptr}{rangelistptr}, depending on context. In
-DWARF V4 DW\_FORM\_data4 and DW\_FORM\_data8 are members of class
-constant in all cases. The new DW\_FORM\_sec\_offset replaces
+DWARF V4 \livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and \livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} are members of class
+constant in all cases. The new \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset} replaces
 their usage for the other classes.}
 
 Each possible form belongs to one or more of the following classes:
@@ -485,7 +486,8 @@ Each possible form belongs to one or more of the following classes:
 \begin{itemize}
 \item address \\
 Represented as an object of appropriate size to hold an
-address on the target machine (DW\_FORM\_addr). The size is
+address on the target machine 
+(\livetarg{chap:DWFORMaddr}{DW\-\_FORM\-\_addr}). The size is
 encoded in the compilation unit header 
 (see Section \refersec{datarep:compilationunitheader}).
 This address is relocatable in a relocatable object file and
@@ -496,24 +498,24 @@ Blocks come in four forms:
 
 \begin{myindentpara}{1cm}
 A 1\dash byte length followed by 0 to 255 contiguous information
-bytes (DW\_FORM\_block1).
+bytes (\livetarg{chap:DWFORMblock1}{DW\-\_FORM\-\_block1}).
 \end{myindentpara}
 
 \begin{myindentpara}{1cm}
 A 2\dash byte length followed by 0 to 65,535 contiguous information
-bytes (DW\_FORM\_block2).
+bytes (\livetarg{chap:DWFORMblock2}{DW\-\_FORM\-\_block2}).
 \end{myindentpara}
 
 
 \begin{myindentpara}{1cm}
 A 4\dash byte length followed by 0 to 4,294,967,295 contiguous
-information bytes (DW\_FORM\_block4).
+information bytes (\livetarg{chap:DWFORMblock4}{DW\-\_FORM\-\_block4}).
 \end{myindentpara}
 
 
 \begin{myindentpara}{1cm}
 An unsigned LEB128 length followed by the number of bytes
-specified by the length (DW\_FORM\_block).
+specified by the length (\livetarg{chap:DWFORMblock}{DW\-\_FORM\-\_block}).
 \end{myindentpara}
 
 In all forms, the length is the number of information bytes
@@ -524,33 +526,43 @@ debugging information entries or data bytes.
 \item constant \\
 There are six forms of constants. There are fixed length
 constant data forms for one, two, four and eight byte values
-(respectively, DW\_FORM\_data1, DW\_FORM\_data2, DW\_FORM\_data4,
-and DW\_FORM\_data8). There are also variable length constant
+(respectively, 
+\livetarg{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}, 
+\livetarg{chap:DWFORMdata2}{DW\-\_FORM\-\_data2}, 
+\livetarg{chap:DWFORMdata4}{DW\-\_FORM\-\_data4},
+and \livetarg{chap:DWFORMdata8}{DW\-\_FORM\-\_data8}). 
+There are also variable length constant
 data forms encoded using LEB128 numbers (see below). Both
-signed (DW\_FORM\_sdata) and unsigned (DW\_FORM\_udata) variable
+signed (\livetarg{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}) and unsigned 
+(\livetarg{chap:DWFORMudata}{DW\-\_FORM\-\_udata}) variable
 length constants are available
 
-The data in DW\_FORM\_data1, DW\_FORM\_data2, DW\_FORM\_data4 and
-DW\_FORM\_data8 can be anything. Depending on context, it may
+The data in \livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}, 
+\livelink{chap:DWFORMdata2}{DW\-\_FORM\-\_data2}, 
+\livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and
+\livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} 
+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 DW\_FORM\_data<n> forms is used to represent a
+\textit{If one of the \livetarg{chap:DWFORMdata}{DW\-\_FORM\-\_data}<n> 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 DW\_FORM\_sdata or DW\_FORM\_udata for signed and
+encouraged to use \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} or 
+\livelink{chap:DWFORMudata}{DW\-\_FORM\-\_udata} for signed and
 unsigned integers respectively, rather than 
-DW\_FORM\_data\textless n \textgreater.}
+\livelink{chap:DWFORMdata}{DW\-\_FORM\-\_data} \textless n \textgreater.}
 
 
 \item \livelink{chap:exprloc}{exprloc} \\
 This is an unsigned LEB128 length followed by the
 number of information bytes specified by the length
-(DW\_FORM\_exprloc). The information bytes contain a DWARF
+(\livetarg{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc}). 
+The information bytes contain a DWARF
 expression 
 (see Section \refersec{chap:dwarfexpressions}) 
 or location description 
@@ -558,7 +570,8 @@ or location description
 
 \item flag \\
 A flag is represented explicitly as a single byte of data
-(DW\_FORM\_flag) or implicitly (DW\_FORM\_flag\_present). In the
+(\livetarg{chap:DWFORMflag}{DW\-\_FORM\-\_flag}) or 
+implicitly (\livetarg{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present}). In the
 first case, if the flag has value zero, it indicates the
 absence of the attribute; if the flag has a non\dash zero value,
 it indicates the presence of the attribute. In the second
@@ -567,7 +580,7 @@ no value is encoded in the debugging information entry itself.
 
 \item \livelink{chap:lineptr}{lineptr} \\
 This is an offset into the .debug\_line section
-(DW\_FORM\_sec\_offset). It consists of an offset from the
+(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}). It consists of an offset from the
 beginning of the .debug\_line section to the first byte of
 the data making up the line number list for the compilation
 unit. 
@@ -580,7 +593,7 @@ in the 64\dash bit DWARF format, it is an 8\dash byte unsigned value
 
 \item \livelink{chap:loclistptr}{loclistptr} \\
 This is an offset into the .debug\_loc section
-(DW\_FORM\_sec\_offset). It consists of an offset from the
+(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}). It consists of an offset from the
 beginning of the .debug\_loc section to the first byte of
 the data making up the location list for the compilation
 unit. 
@@ -593,7 +606,7 @@ in the 64\dash bit DWARF format, it is an 8\dash byte unsigned value
 
 \item \livelink{chap:macptr}{macptr} \\
 This is an offset into the .debug\_macinfo section
-(DW\_FORM\_sec\_offset). It consists of an offset from the
+(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}). It consists of an offset from the
 beginning of the .debug\_macinfo section to the first byte of
 the data making up the macro information list for the compilation
 unit. 
@@ -605,7 +618,7 @@ in the 64\dash bit DWARF format, it is an 8\dash byte unsigned value
 
 \item \livelink{chap:rangelistptr}{rangelistptr} \\
 This is an offset into the .debug\_ranges section
-(DW\_FORM\_sec\_offset). 
+(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}). 
 It consists of an
 offset from the beginning of the .debug\_ranges section
 to the beginning of the non\dash contiguous address ranges
@@ -633,10 +646,14 @@ reference is an 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, DW\_FORM\_ref1, DW\_FORM\_ref2, DW\_FORM\_ref4,
-and DW\_FORM\_ref8). There is also an unsigned variable
+(respectively, \livetarg{chap:DWFORMref1}{DW\-\_FORM\-\_ref1}, 
+\livetarg{chap:DWFORMref2}{DW\-\_FORM\-\_ref2}, 
+\livetarg{chap:DWFORMref4}{DW\-\_FORM\-\_ref4},
+and \livetarg{chap:DWFORMref8}{DW\-\_FORM\-\_ref8}). 
+There is also an unsigned variable
 length offset encoded form that uses unsigned LEB128 numbers
-(DW\_FORM\_ref\_udata). Because this type of reference is within
+(\livetarg{chap:DWFORMrefudata}{DW\-\_FORM\-\_ref\-\_udata}). 
+Because this type of reference is within
 the containing compilation unit no relocation of the value
 is required.
 
@@ -645,7 +662,7 @@ information entry within a .debug\_info 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
-(DW\_FORM\_ref\_addr) is an offset from the beginning of the
+(\livetarg{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}) is an offset from the beginning of the
 .debug\_info section of the target executable or shared object;
 it is relocatable in a relocatable object file and frequently
 relocated in an executable file or shared object. For
@@ -658,7 +675,7 @@ unsigned value
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 A debugging information entry that may be referenced by
-another compilation unit using DW\_FORM\_ref\_addr must have a
+another compilation unit using \livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} must have a
 global symbolic name.
 
 For a reference from one executable or shared object to
@@ -670,7 +687,8 @@ 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
-type unit. This type of reference (DW\_FORM\_ref\_sig8) is the
+type unit. This type of 
+reference (\livetarg{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8}) is the
 64\dash bit type signature 
 (see Section \refersec{datarep:typesignaturecomputation}) 
 that was computed
@@ -689,15 +707,18 @@ header.
 \item string \\
 A string is a sequence of contiguous non\dash null bytes followed by
 one null byte. A string may be represented immediately in the
-debugging information entry itself (DW\_FORM\_string), or may
+debugging information entry itself 
+(\livetarg{chap:DWFORMstring}{DW\-\_FORM\-\_string}), or may
 be represented as an offset into a string table contained in
-the .debug\_str section of the object file (DW\_FORM\_strp). In
-the 32\dash bit DWARF format, the representation of a DW\_FORM\_strp
+the .debug\_str section of the object file 
+(\livetarg{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}). In
+the 32\dash bit DWARF format, the representation of a 
+\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}
 value is a 4\dash byte unsigned offset; in the 64\dash bit DWARF format,
 it is an 8\dash byte unsigned offset 
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
-If the DW\_AT\_use\_UTF8 attribute is specified for the
+If the \livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8} attribute is specified for the
 compilation unit entry, string values are encoded using the
 UTF\dash 8 (Unicode Transformation Format\dash 8) from the Universal
 Character Set standard (ISO/IEC 10646\dash 1:1993). Otherwise,
@@ -733,68 +754,68 @@ Table \refersec{tab:attributeformencodings}.
 \endfoot
   \hline
 \endlastfoot
-\livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type} &0x01 \\
-\livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}&0x02 \\
-\livelink{chap:DWTAGentrypoint}{DW\_TAG\_entry\_point}&0x03 \\
-\livelink{chap:DWTAGenumerationtype}{DW\_TAG\_enumeration\_type}&0x04 \\
-\livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}&0x05 \\
-\livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}&0x08 \\
-\livelink{chap:DWTAGlabel}{DW\_TAG\_label}&0x0a \\
-\livelink{chap:DWTAGlexicalblock}{DW\_TAG\_lexical\_block}&0x0b \\
-\livelink{chap:DWTAGmember}{DW\_TAG\_member}&0x0d \\
-\livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}&0x0f \\
-\livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}&0x10 \\
-\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}&0x11 \\
-\livelink{chap:DWTAGstringtype}{DW\_TAG\_string\_type}&0x12 \\
-\livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}&0x13 \\
-\livelink{chap:DWTAGsubroutinetype}{DW\_TAG\_subroutine\_type}&0x15 \\
-\livelink{chap:DWTAGtypedef}{DW\_TAG\_typedef}&0x16 \\
-\livelink{chap:DWTAGuniontype}{DW\_TAG\_union\_type}&0x17 \\
-\livelink{chap:DWTAGunspecifiedparameters}{DW\_TAG\_unspecified\_parameters}&0x18  \\
-\livelink{chap:DWTAGvariant}{DW\_TAG\_variant}&0x19  \\
-\livelink{chap:DWTAGcommonblock}{DW\_TAG\_common\_block}&0x1a  \\
-\livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion}&0x1b  \\
-\livelink{chap:DWTAGinheritance}{DW\_TAG\_inheritance}&0x1c  \\
-\livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}&0x1d  \\
-\livelink{chap:DWTAGmodule}{DW\_TAG\_module}&0x1e  \\
-\livelink{chap:DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type}&0x1f  \\
-\livelink{chap:DWTAGsettype}{DW\_TAG\_set\_type}&0x20  \\
-\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}&0x21  \\
-\livelink{chap:DWTAGwithstmt}{DW\_TAG\_with\_stmt}&0x22  \\
-\livelink{chap:DWTAGaccessdeclaration}{DW\_TAG\_access\_declaration}&0x23  \\
-\livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}&0x24  \\
-\livelink{chap:DWTAGcatchblock}{DW\_TAG\_catch\_block}&0x25  \\
-\livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type}&0x26  \\
-\livelink{chap:DWTAGconstant}{DW\_TAG\_constant}&0x27  \\
-\livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator}&0x28  \\
-\livelink{chap:DWTAGfiletype}{DW\_TAG\_file\_type}&0x29  \\
-\livelink{chap:DWTAGfriend}{DW\_TAG\_friend}&0x2a  \\
-\livelink{chap:DWTAGnamelist}{DW\_TAG\_namelist}&0x2b    \\
-\livelink{chap:DWTAGnamelistitem}{DW\_TAG\_namelist\_item}&0x2c    \\
-\livelink{chap:DWTAGpackedtype}{DW\_TAG\_packed\_type}&0x2d    \\
-\livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}&0x2e    \\
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}&0x2f    \\
-\livelink{chap:DWTAGtemplatevalueparameter}{DW\_TAG\_template\_value\_parameter}&0x30    \\
-\livelink{chap:DWTAGthrowntype}{DW\_TAG\_thrown\_type}&0x31    \\
-\livelink{chap:DWTAGtryblock}{DW\_TAG\_try\_block}&0x32    \\
-\livelink{chap:DWTAGvariantpart}{DW\_TAG\_variant\_part}&0x33    \\
-\livelink{chap:DWTAGvariable}{DW\_TAG\_variable}&0x34    \\
-\livelink{chap:DWTAGvolatiletype}{DW\_TAG\_volatile\_type}&0x35    \\
-\livelink{chap:DWTAGdwarfprocedure}{DW\_TAG\_dwarf\_procedure}&0x36     \\
-\livelink{chap:DWTAGrestricttype}{DW\_TAG\_restrict\_type}&0x37      \\
-\livelink{chap:DWTAGinterfacetype}{DW\_TAG\_interface\_type}&0x38      \\
-\livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}&0x39      \\
-\livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module}&0x3a      \\
-\livelink{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type}&0x3b      \\
-\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit}&0x3c      \\
-\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}&0x3d      \\
-\livelink{chap:DWTAGcondition}{DW\_TAG\_condition}&0x3f      \\
-\livelink{chap:DWTAGsharedtype}{DW\_TAG\_shared\_type}&0x40      \\
-\livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit} \ddag &0x41      \\
-\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type} \ddag &0x42      \\
-\livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias} \ddag &0x43      \\
-\livelink{chap:DWTAGlouser}{DW\_TAG\_lo\_user}&0x4080      \\
-\livelink{chap:DWTAGhiuser}{DW\_TAG\_hi\_user}&0xffff      \\
+\livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type} &0x01 \\
+\livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type}&0x02 \\
+\livelink{chap:DWTAGentrypoint}{DW\-\_TAG\-\_entry\-\_point}&0x03 \\
+\livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type}&0x04 \\
+\livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}&0x05 \\
+\livelink{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration}&0x08 \\
+\livelink{chap:DWTAGlabel}{DW\-\_TAG\-\_label}&0x0a \\
+\livelink{chap:DWTAGlexicalblock}{DW\-\_TAG\-\_lexical\-\_block}&0x0b \\
+\livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}&0x0d \\
+\livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}&0x0f \\
+\livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type}&0x10 \\
+\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}&0x11 \\
+\livelink{chap:DWTAGstringtype}{DW\-\_TAG\-\_string\-\_type}&0x12 \\
+\livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}&0x13 \\
+\livelink{chap:DWTAGsubroutinetype}{DW\-\_TAG\-\_subroutine\-\_type}&0x15 \\
+\livelink{chap:DWTAGtypedef}{DW\-\_TAG\-\_typedef}&0x16 \\
+\livelink{chap:DWTAGuniontype}{DW\-\_TAG\-\_union\-\_type}&0x17 \\
+\livelink{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters}&0x18  \\
+\livelink{chap:DWTAGvariant}{DW\-\_TAG\-\_variant}&0x19  \\
+\livelink{chap:DWTAGcommonblock}{DW\-\_TAG\-\_common\-\_block}&0x1a  \\
+\livelink{chap:DWTAGcommoninclusion}{DW\-\_TAG\-\_common\-\_inclusion}&0x1b  \\
+\livelink{chap:DWTAGinheritance}{DW\-\_TAG\-\_inheritance}&0x1c  \\
+\livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine}&0x1d  \\
+\livelink{chap:DWTAGmodule}{DW\-\_TAG\-\_module}&0x1e  \\
+\livelink{chap:DWTAGptrtomembertype}{DW\-\_TAG\-\_ptr\-\_to\-\_member\-\_type}&0x1f  \\
+\livelink{chap:DWTAGsettype}{DW\-\_TAG\-\_set\-\_type}&0x20  \\
+\livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}&0x21  \\
+\livelink{chap:DWTAGwithstmt}{DW\-\_TAG\-\_with\-\_stmt}&0x22  \\
+\livelink{chap:DWTAGaccessdeclaration}{DW\-\_TAG\-\_access\-\_declaration}&0x23  \\
+\livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}&0x24  \\
+\livelink{chap:DWTAGcatchblock}{DW\-\_TAG\-\_catch\-\_block}&0x25  \\
+\livelink{chap:DWTAGconsttype}{DW\-\_TAG\-\_const\-\_type}&0x26  \\
+\livelink{chap:DWTAGconstant}{DW\-\_TAG\-\_constant}&0x27  \\
+\livelink{chap:DWTAGenumerator}{DW\-\_TAG\-\_enumerator}&0x28  \\
+\livelink{chap:DWTAGfiletype}{DW\-\_TAG\-\_file\-\_type}&0x29  \\
+\livelink{chap:DWTAGfriend}{DW\-\_TAG\-\_friend}&0x2a  \\
+\livelink{chap:DWTAGnamelist}{DW\-\_TAG\-\_namelist}&0x2b    \\
+\livelink{chap:DWTAGnamelistitem}{DW\-\_TAG\-\_namelist\-\_item}&0x2c    \\
+\livelink{chap:DWTAGpackedtype}{DW\-\_TAG\-\_packed\-\_type}&0x2d    \\
+\livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}&0x2e    \\
+\livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}&0x2f    \\
+\livelink{chap:DWTAGtemplatevalueparameter}{DW\-\_TAG\-\_template\-\_value\-\_parameter}&0x30    \\
+\livelink{chap:DWTAGthrowntype}{DW\-\_TAG\-\_thrown\-\_type}&0x31    \\
+\livelink{chap:DWTAGtryblock}{DW\-\_TAG\-\_try\-\_block}&0x32    \\
+\livelink{chap:DWTAGvariantpart}{DW\-\_TAG\-\_variant\-\_part}&0x33    \\
+\livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}&0x34    \\
+\livelink{chap:DWTAGvolatiletype}{DW\-\_TAG\-\_volatile\-\_type}&0x35    \\
+\livelink{chap:DWTAGdwarfprocedure}{DW\-\_TAG\-\_dwarf\-\_procedure}&0x36     \\
+\livelink{chap:DWTAGrestricttype}{DW\-\_TAG\-\_restrict\-\_type}&0x37      \\
+\livelink{chap:DWTAGinterfacetype}{DW\-\_TAG\-\_interface\-\_type}&0x38      \\
+\livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}&0x39      \\
+\livelink{chap:DWTAGimportedmodule}{DW\-\_TAG\-\_imported\-\_module}&0x3a      \\
+\livelink{chap:DWTAGunspecifiedtype}{DW\-\_TAG\-\_unspecified\-\_type}&0x3b      \\
+\livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit}&0x3c      \\
+\livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}&0x3d      \\
+\livelink{chap:DWTAGcondition}{DW\-\_TAG\-\_condition}&0x3f      \\
+\livelink{chap:DWTAGsharedtype}{DW\-\_TAG\-\_shared\-\_type}&0x40      \\
+\livelink{chap:DWTAGtypeunit}{DW\-\_TAG\-\_type\-\_unit} \ddag &0x41      \\
+\livelink{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type} \ddag &0x42      \\
+\livelink{chap:DWTAGtemplatealias}{DW\-\_TAG\-\_template\-\_alias} \ddag &0x43      \\
+\livelink{chap:DWTAGlouser}{DW\-\_TAG\-\_lo\-\_user}&0x4080      \\
+\livelink{chap:DWTAGhiuser}{DW\-\_TAG\-\_hi\-\_user}&0xffff      \\
 \end{longtable}
 \ddag  TAG new in DWARF Version 4 
 \end{centering}
@@ -807,8 +828,8 @@ Table \refersec{tab:attributeformencodings}.
 \label{tab:childdeterminationencodings}
 \begin{tabular}{l|l} \hline
 Child determination name& Value\\ \hline
-DW\_CHILDREN\_no&0x00 \\ 
-DW\_CHILDREN\_yes&0x01 \\ \hline
+DW\-\_CHILDREN\-\_no&0x00 \\ 
+DW\-\_CHILDREN\-\_yes&0x01 \\ \hline
 \end{tabular}
 \end{figure}
 
@@ -825,105 +846,105 @@ DW\_CHILDREN\_yes&0x01 \\ \hline
 \endfoot
   \hline
 \endlastfoot
-DW\_AT\_sibling&0x01&reference \\
-DW\_AT\_location&0x02&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}   \\
-DW\_AT\_name&0x03&string   \\
-DW\_AT\_ordering&0x09&constant   \\
-DW\_AT\_byte\_size&0x0b&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
-DW\_AT\_bit\_offset&0x0c&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
-DW\_AT\_bit\_size&0x0d&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
-DW\_AT\_stmt\_list&0x10&\livelink{chap:lineptr}{lineptr}   \\
-DW\_AT\_low\_pc&0x11&address   \\
-DW\_AT\_high\_pc&0x12&address, constant   \\
-DW\_AT\_language&0x13&constant   \\
-DW\_AT\_discr&0x15&reference   \\
-DW\_AT\_discr\_value&0x16&constant   \\
-DW\_AT\_visibility&0x17&constant   \\
-DW\_AT\_import&0x18&reference   \\
-DW\_AT\_string\_length&0x19&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}   \\
-DW\_AT\_common\_reference&0x1a&reference   \\
-DW\_AT\_comp\_dir&0x1b&string   \\
-DW\_AT\_const\_value&0x1c&block, constant, string   \\
-DW\_AT\_containing\_type&0x1d&reference     \\
-DW\_AT\_default\_value&0x1e&reference     \\
-DW\_AT\_inline&0x20&constant     \\
-DW\_AT\_is\_optional&0x21&flag     \\
-DW\_AT\_lower\_bound&0x22&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-DW\_AT\_producer&0x25&string     \\
-DW\_AT\_prototyped&0x27&flag     \\
-DW\_AT\_return\_addr&0x2a&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
+\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling}&0x01&reference \\
+\livelink{chap:DWATlocation}{DW\-\_AT\-\_location}&0x02&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}   \\
+\livelink{chap:DWATname}{DW\-\_AT\-\_name}&0x03&string   \\
+\livelink{chap:DWATordering}{DW\-\_AT\-\_ordering}&0x09&constant   \\
+\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}&0x0b&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
+\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}&0x0c&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
+\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}&0x0d&constant, \livelink{chap:exprloc}{exprloc}, reference   \\
+\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list}&0x10&\livelink{chap:lineptr}{lineptr}   \\
+\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}&0x11&address   \\
+\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}&0x12&address, constant   \\
+\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}&0x13&constant   \\
+\livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr}&0x15&reference   \\
+\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value}&0x16&constant   \\
+\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility}&0x17&constant   \\
+\livelink{chap:DWATimport}{DW\-\_AT\-\_import}&0x18&reference   \\
+\livelink{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length}&0x19&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}   \\
+\livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference}&0x1a&reference   \\
+\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir}&0x1b&string   \\
+\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}&0x1c&block, constant, string   \\
+\livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}&0x1d&reference     \\
+\livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value}&0x1e&reference     \\
+\livelink{chap:DWATinline}{DW\-\_AT\-\_inline}&0x20&constant     \\
+\livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}&0x21&flag     \\
+\livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}&0x22&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
+\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer}&0x25&string     \\
+\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped}&0x27&flag     \\
+\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr}&0x2a&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
 % FIXME: lower case , not Constant
-DW\_AT\_start\_scope&0x2c&Constant, \livelink{chap:rangelistptr}{rangelistptr}     \\
-DW\_AT\_bit\_stride&0x2e&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-DW\_AT\_upper\_bound&0x2f&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-DW\_AT\_abstract\_origin&0x31&reference     \\
-DW\_AT\_accessibility&0x32&constant     \\
-DW\_AT\_address\_class&0x33&constant     \\
-DW\_AT\_artificial&0x34&flag     \\
-DW\_AT\_base\_types&0x35&reference     \\
-DW\_AT\_calling\_convention&0x36&constant     \\
-DW\_AT\_count&0x37&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-DW\_AT\_data\_member\_location&0x38&constant, \livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
-DW\_AT\_decl\_column&0x39&constant     \\
-DW\_AT\_decl\_file&0x3a&constant     \\
-DW\_AT\_decl\_line&0x3b&constant     \\
-DW\_AT\_declaration&0x3c&flag     \\
-DW\_AT\_discr\_list&0x3d&block     \\
-DW\_AT\_encoding&0x3e&constant     \\
-DW\_AT\_external&0x3f&flag     \\
-DW\_AT\_frame\_base&0x40&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
-DW\_AT\_friend&0x41&reference     \\
-DW\_AT\_identifier\_case&0x42&constant    \\
-DW\_AT\_macro\_info&0x43&\livelink{chap:macptr}{macptr}    \\
-DW\_AT\_namelist\_item&0x44&reference    \\
-DW\_AT\_priority&0x45&reference    \\
-DW\_AT\_segment&0x46&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
-DW\_AT\_specification&0x47&reference    \\
-DW\_AT\_static\_link&0x48&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
-DW\_AT\_type&0x49&reference    \\
-DW\_AT\_use\_location&0x4a&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
-DW\_AT\_variable\_parameter&0x4b&flag    \\
-DW\_AT\_virtuality&0x4c&constant    \\
-DW\_AT\_vtable\_elem\_location&0x4d&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
-
-
-DW\_AT\_allocated&0x4e&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-DW\_AT\_associated&0x4f&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-DW\_AT\_data\_location&0x50&\livelink{chap:exprloc}{exprloc}     \\
-DW\_AT\_byte\_stride&0x51&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
-DW\_AT\_entry\_pc&0x52&address     \\
-DW\_AT\_use\_UTF8&0x53&flag     \\
-DW\_AT\_extension&0x54&reference     \\
-DW\_AT\_ranges&0x55&\livelink{chap:rangelistptr}{rangelistptr}     \\
-DW\_AT\_trampoline&0x56&address, flag, reference, string     \\
-DW\_AT\_call\_column&0x57&constant     \\
-DW\_AT\_call\_file&0x58&constant     \\
-DW\_AT\_call\_line&0x59&constant     \\
-DW\_AT\_description&0x5a&string     \\
-DW\_AT\_binary\_scale&0x5b&constant     \\
-DW\_AT\_decimal\_scale&0x5c&constant     \\
-DW\_AT\_small &0x5d&reference     \\
-DW\_AT\_decimal\_sign&0x5e&constant     \\
-DW\_AT\_digit\_count&0x5f&constant     \\
-DW\_AT\_picture\_string&0x60&string      \\
-DW\_AT\_mutable&0x61&flag     \\
-
-
-DW\_AT\_threads\_scaled&0x62&flag     \\
-DW\_AT\_explicit&0x63&flag     \\
-DW\_AT\_object\_pointer&0x64&reference     \\
-DW\_AT\_endianity&0x65&constant     \\
-DW\_AT\_elemental&0x66&flag     \\
-DW\_AT\_pure&0x67&flag     \\
-DW\_AT\_recursive&0x68&flag     \\
-DW\_AT\_signature \ddag &0x69&reference     \\ 
-DW\_AT\_main\_subprogram \ddag &0x6a&flag     \\
-DW\_AT\_data\_bit\_offset \ddag &0x6b&constant     \\
-DW\_AT\_const\_expr \ddag &0x6c&flag     \\
-DW\_AT\_enum\_class \ddag &0x6d&flag     \\
-DW\_AT\_linkage\_name \ddag &0x6e&string     \\
-DW\_AT\_lo\_user&0x2000 & ---     \\
-DW\_AT\_hi\_user&0x3fff& ---     \\
+\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope}&0x2c&Constant, \livelink{chap:rangelistptr}{rangelistptr}     \\
+\livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride}&0x2e&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
+\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}&0x2f&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
+\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}&0x31&reference     \\
+\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}&0x32&constant     \\
+\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class}&0x33&constant     \\
+\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}&0x34&flag     \\
+\livelink{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types}&0x35&reference     \\
+\livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention}&0x36&constant     \\
+\livelink{chap:DWATcount}{DW\-\_AT\-\_count}&0x37&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
+\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}&0x38&constant, \livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
+\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column}&0x39&constant     \\
+\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}&0x3a&constant     \\
+\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}&0x3b&constant     \\
+\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}&0x3c&flag     \\
+\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}&0x3d&block     \\
+\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}&0x3e&constant     \\
+\livelink{chap:DWATexternal}{DW\-\_AT\-\_external}&0x3f&flag     \\
+\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}&0x40&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}     \\
+\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend}&0x41&reference     \\
+\livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}&0x42&constant    \\
+\livelink{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info}&0x43&\livelink{chap:macptr}{macptr}    \\
+\livelink{chap:DWATnamelistitem}{DW\-\_AT\-\_namelist\-\_item}&0x44&reference    \\
+\livelink{chap:DWATpriority}{DW\-\_AT\-\_priority}&0x45&reference    \\
+\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment}&0x46&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
+\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification}&0x47&reference    \\
+\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}&0x48&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
+\livelink{chap:DWATtype}{DW\-\_AT\-\_type}&0x49&reference    \\
+\livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location}&0x4a&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
+\livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}&0x4b&flag    \\
+\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}&0x4c&constant    \\
+\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}&0x4d&\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}    \\
+
+
+\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated}&0x4e&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
+\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated}&0x4f&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
+\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}&0x50&\livelink{chap:exprloc}{exprloc}     \\
+\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}&0x51&constant, \livelink{chap:exprloc}{exprloc}, reference     \\
+\livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc}&0x52&address     \\
+\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}&0x53&flag     \\
+\livelink{chap:DWATextension}{DW\-\_AT\-\_extension}&0x54&reference     \\
+\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges}&0x55&\livelink{chap:rangelistptr}{rangelistptr}     \\
+\livelink{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline}&0x56&address, flag, reference, string     \\
+\livelink{chap:DWATcallcolumn}{DW\-\_AT\-\_call\-\_column}&0x57&constant     \\
+\livelink{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file}&0x58&constant     \\
+\livelink{chap:DWATcallline}{DW\-\_AT\-\_call\-\_line}&0x59&constant     \\
+\livelink{chap:DWATdescription}{DW\-\_AT\-\_description}&0x5a&string     \\
+\livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale}&0x5b&constant     \\
+\livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}&0x5c&constant     \\
+\livelink{chap:DWATsmall}{DW\-\_AT\-\_small} &0x5d&reference     \\
+\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}&0x5e&constant     \\
+\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count}&0x5f&constant     \\
+\livelink{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string}&0x60&string      \\
+\livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable}&0x61&flag     \\
+
+
+\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}&0x62&flag     \\
+\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit}&0x63&flag     \\
+\livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}&0x64&reference     \\
+\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity}&0x65&constant     \\
+\livelink{chap:DWATelemental}{DW\-\_AT\-\_elemental}&0x66&flag     \\
+\livelink{chap:DWATpure}{DW\-\_AT\-\_pure}&0x67&flag     \\
+\livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive}&0x68&flag     \\
+\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \ddag &0x69&reference     \\ 
+\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \ddag &0x6a&flag     \\
+\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} \ddag &0x6b&constant     \\
+\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} \ddag &0x6c&flag     \\
+\livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class} \ddag &0x6d&flag     \\
+\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \ddag &0x6e&string     \\
+\livetarg{chap:DWATlouser}{DW\-\_AT\-\_lo\-\_user}&0x2000 & ---     \\
+\livetarg{chap:DWAThiuser}{DW\-\_AT\-\_hi\-\_user}&0x3fff& ---     \\
 
 \end{longtable}
 \ddag  Attribute new in DWARF Version 4 
@@ -941,31 +962,31 @@ DW\_AT\_hi\_user&0x3fff& ---     \\
 \endfoot
   \hline
 \endlastfoot
-DW\_FORM\_addr&0x01&address  \\
-DW\_FORM\_block2&0x03&block \\
-DW\_FORM\_block4&0x04&block  \\
-DW\_FORM\_data2&0x05&constant \\
-DW\_FORM\_data4&0x06&constant \\
-DW\_FORM\_data8&0x07&constant \\
-DW\_FORM\_string&0x08&string \\
-DW\_FORM\_block&0x09&block \\
-DW\_FORM\_block1&0x0a&block \\
-DW\_FORM\_data1&0x0b&constant \\
-DW\_FORM\_flag&0x0c&flag \\
-DW\_FORM\_sdata&0x0d&constant    \\
-DW\_FORM\_strp&0x0e&string         \\
-DW\_FORM\_udata&0x0f&constant         \\
-DW\_FORM\_ref\_addr&0x10&reference         \\
-DW\_FORM\_ref1&0x11&reference          \\
-DW\_FORM\_ref2&0x12&reference         \\
-DW\_FORM\_ref4&0x13&reference         \\
-DW\_FORM\_ref8&0x14&reference \\
-DW\_FORM\_ref\_udata&0x15&reference  \\
-DW\_FORM\_indirect&0x16&(see Section \refersec{datarep:abbreviationstables}) \\
-DW\_FORM\_sec\_offset \ddag &0x17&\livelink{chap:lineptr}{lineptr}, \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr}, \livelink{chap:rangelistptr}{rangelistptr} \\
-DW\_FORM\_exprloc \ddag &0x18&\livelink{chap:exprloc}{exprloc} \\
-DW\_FORM\_flag\_present \ddag &0x19&flag \\
-DW\_FORM\_ref\_sig8 \ddag &0x20&reference \\
+\livelink{chap:DWFORMaddr}{DW\-\_FORM\-\_addr}&0x01&address  \\
+\livelink{chap:DWFORMblock2}{DW\-\_FORM\-\_block2}&0x03&block \\
+\livelink{chap:DWFORMblock4}{DW\-\_FORM\-\_block4}&0x04&block  \\
+\livelink{chap:DWFORMdata2}{DW\-\_FORM\-\_data2}&0x05&constant \\
+\livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4}&0x06&constant \\
+\livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8}&0x07&constant \\
+\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}&0x08&string \\
+\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}&0x09&block \\
+\livelink{chap:DWFORMblock1}{DW\-\_FORM\-\_block1}&0x0a&block \\
+\livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}&0x0b&constant \\
+\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}&0x0c&flag \\
+\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}&0x0d&constant    \\
+\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}&0x0e&string         \\
+\livelink{chap:DWFORMudata}{DW\-\_FORM\-\_udata}&0x0f&constant         \\
+\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}&0x10&reference         \\
+\livelink{chap:DWFORMref1}{DW\-\_FORM\-\_ref1}&0x11&reference          \\
+\livelink{chap:DWFORMref2}{DW\-\_FORM\-\_ref2}&0x12&reference         \\
+\livelink{chap:DWFORMref4}{DW\-\_FORM\-\_ref4}&0x13&reference         \\
+\livelink{chap:DWFORMref8}{DW\-\_FORM\-\_ref8}&0x14&reference \\
+\livelink{chap:DWFORMrefudata}{DW\-\_FORM\-\_ref\-\_udata}&0x15&reference  \\
+\livelink{chap:DWFORMindirect}{DW\-\_FORM\-\_indirect}&0x16&(see Section \refersec{datarep:abbreviationstables}) \\
+\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset} \ddag &0x17&\livelink{chap:lineptr}{lineptr}, \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr}, \livelink{chap:rangelistptr}{rangelistptr} \\
+\livelink{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc} \ddag &0x18&\livelink{chap:exprloc}{exprloc} \\
+\livelink{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present} \ddag &0x19&flag \\
+\livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8} \ddag &0x20&reference \\
  
 \end{longtable}
 \ddag  FORM new in DWARF Version 4 
@@ -1101,98 +1122,98 @@ Table \refersec{tab:dwarfoperationencodings}.
   \hline
 \endlastfoot
 
-DW\_OP\_addr&0x03&1 & constant address  \\ 
+DW\-\_OP\-\_addr&0x03&1 & constant address  \\ 
 & & &(size target specific) \\
 
-DW\_OP\_deref&0x06&0 & \\
-
-
-DW\_OP\_const1u&0x08&1&1\dash byte constant  \\
-DW\_OP\_const1s&0x09&1&1\dash byte constant   \\
-DW\_OP\_const2u&0x0a&1&2\dash byte constant   \\
-DW\_OP\_const2s&0x0b&1&2\dash byte constant   \\
-DW\_OP\_const4u&0x0c&1&4\dash byte constant    \\
-DW\_OP\_const4s&0x0d&1&4\dash byte constant   \\
-DW\_OP\_const8u&0x0e&1&8\dash byte constant   \\
-DW\_OP\_const8s&0x0f&1&8\dash byte constant   \\
-DW\_OP\_constu&0x10&1&ULEB128 constant   \\
-DW\_OP\_consts&0x11&1&SLEB128 constant   \\
-DW\_OP\_dup&0x12&0 &   \\
-DW\_OP\_drop&0x13&0  &   \\
-DW\_OP\_over&0x14&0 &   \\
-DW\_OP\_pick&0x15&1&1\dash byte stack index   \\
-DW\_OP\_swap&0x16&0 &   \\
-DW\_OP\_rot&0x17&0 &   \\
-DW\_OP\_xderef&0x18&0 &   \\
-DW\_OP\_abs&0x19&0 &   \\
-DW\_OP\_and&0x1a&0 &   \\
-DW\_OP\_div&0x1b&0 &   \\
-
-
-
-DW\_OP\_minus&0x1c&0 & \\
-DW\_OP\_mod&0x1d&0 & \\
-DW\_OP\_mul&0x1e&0 & \\
-DW\_OP\_neg&0x1f&0 & \\
-DW\_OP\_not&0x20&0 & \\
-DW\_OP\_or&0x21&0 & \\
-DW\_OP\_plus&0x22&0 & \\
-DW\_OP\_plus\_uconst&0x23&1&ULEB128 addend \\
-DW\_OP\_shl&0x24&0 & \\
-DW\_OP\_shr&0x25&0 & \\
-DW\_OP\_shra&0x26&0 & \\
-DW\_OP\_xor&0x27&0 & \\
-DW\_OP\_skip&0x2f&1&signed 2\dash byte constant \\
-DW\_OP\_bra&0x28&1 & signed 2\dash byte constant \\
-DW\_OP\_eq&0x29&0 & \\
-DW\_OP\_ge&0x2a&0 & \\
-DW\_OP\_gt&0x2b&0 & \\
-DW\_OP\_le&0x2c&0 & \\
-DW\_OP\_lt&0x2d&0  & \\
-DW\_OP\_ne&0x2e&0 & \\ \hline
-
-
-
-DW\_OP\_lit0&0x30 & 0 & \\
-
-DW\_OP\_lit1&0x31 & 0& literals 0 .. 31 = \\
-\ldots & & & (DW\_OP\_lit0 + literal) \\
-DW\_OP\_lit31&0x4f & 0 & \\ \hline
-
-DW\_OP\_reg0 & 0x50 & 0 & \\
-DW\_OP\_reg1 & 0x51 & 0&reg 0 .. 31 = \\
-\ldots & & & (DW\_OP\_reg0 + regnum) \\
-DW\_OP\_reg31 & 0x6f & 0 & \\ \hline
-
-DW\_OP\_breg0 & 0x70 &1 & SLEB128 offset \\
-DW\_OP\_breg1 & 0x71 & 1 &base register 0 .. 31 = \\
-... & &              &(DW\_OP\_breg0 + regnum) \\
-DW\_OP\_breg31 & 0x8f & 1 & \\ \hline
-
-DW\_OP\_regx & 0x90 &1&ULEB128 register \\
-DW\_OP\_fbreg & 0x91&1&SLEB128 offset \\
-DW\_OP\_bregx & 0x92&2 &ULEB128 register followed \\
+DW\-\_OP\-\_deref&0x06&0 & \\
+
+
+DW\-\_OP\-\_const1u&0x08&1&1\dash byte constant  \\
+DW\-\_OP\-\_const1s&0x09&1&1\dash byte constant   \\
+DW\-\_OP\-\_const2u&0x0a&1&2\dash byte constant   \\
+DW\-\_OP\-\_const2s&0x0b&1&2\dash byte constant   \\
+DW\-\_OP\-\_const4u&0x0c&1&4\dash byte constant    \\
+DW\-\_OP\-\_const4s&0x0d&1&4\dash byte constant   \\
+DW\-\_OP\-\_const8u&0x0e&1&8\dash byte constant   \\
+DW\-\_OP\-\_const8s&0x0f&1&8\dash byte constant   \\
+DW\-\_OP\-\_constu&0x10&1&ULEB128 constant   \\
+DW\-\_OP\-\_consts&0x11&1&SLEB128 constant   \\
+DW\-\_OP\-\_dup&0x12&0 &   \\
+DW\-\_OP\-\_drop&0x13&0  &   \\
+DW\-\_OP\-\_over&0x14&0 &   \\
+DW\-\_OP\-\_pick&0x15&1&1\dash byte stack index   \\
+DW\-\_OP\-\_swap&0x16&0 &   \\
+DW\-\_OP\-\_rot&0x17&0 &   \\
+DW\-\_OP\-\_xderef&0x18&0 &   \\
+DW\-\_OP\-\_abs&0x19&0 &   \\
+DW\-\_OP\-\_and&0x1a&0 &   \\
+DW\-\_OP\-\_div&0x1b&0 &   \\
+
+
+
+DW\-\_OP\-\_minus&0x1c&0 & \\
+DW\-\_OP\-\_mod&0x1d&0 & \\
+DW\-\_OP\-\_mul&0x1e&0 & \\
+DW\-\_OP\-\_neg&0x1f&0 & \\
+DW\-\_OP\-\_not&0x20&0 & \\
+DW\-\_OP\-\_or&0x21&0 & \\
+DW\-\_OP\-\_plus&0x22&0 & \\
+DW\-\_OP\-\_plus\-\_uconst&0x23&1&ULEB128 addend \\
+DW\-\_OP\-\_shl&0x24&0 & \\
+DW\-\_OP\-\_shr&0x25&0 & \\
+DW\-\_OP\-\_shra&0x26&0 & \\
+DW\-\_OP\-\_xor&0x27&0 & \\
+DW\-\_OP\-\_skip&0x2f&1&signed 2\dash byte constant \\
+DW\-\_OP\-\_bra&0x28&1 & signed 2\dash byte constant \\
+DW\-\_OP\-\_eq&0x29&0 & \\
+DW\-\_OP\-\_ge&0x2a&0 & \\
+DW\-\_OP\-\_gt&0x2b&0 & \\
+DW\-\_OP\-\_le&0x2c&0 & \\
+DW\-\_OP\-\_lt&0x2d&0  & \\
+DW\-\_OP\-\_ne&0x2e&0 & \\ \hline
+
+
+
+DW\-\_OP\-\_lit0&0x30 & 0 & \\
+
+DW\-\_OP\-\_lit1&0x31 & 0& literals 0 .. 31 = \\
+\ldots & & & (DW\-\_OP\-\_lit0 + literal) \\
+DW\-\_OP\-\_lit31&0x4f & 0 & \\ \hline
+
+DW\-\_OP\-\_reg0 & 0x50 & 0 & \\
+DW\-\_OP\-\_reg1 & 0x51 & 0&reg 0 .. 31 = \\
+\ldots & & & (DW\-\_OP\-\_reg0 + regnum) \\
+DW\-\_OP\-\_reg31 & 0x6f & 0 & \\ \hline
+
+DW\-\_OP\-\_breg0 & 0x70 &1 & SLEB128 offset \\
+DW\-\_OP\-\_breg1 & 0x71 & 1 &base register 0 .. 31 = \\
+... & &              &(DW\-\_OP\-\_breg0 + regnum) \\
+DW\-\_OP\-\_breg31 & 0x8f & 1 & \\ \hline
+
+DW\-\_OP\-\_regx & 0x90 &1&ULEB128 register \\
+DW\-\_OP\-\_fbreg & 0x91&1&SLEB128 offset \\
+DW\-\_OP\-\_bregx & 0x92&2 &ULEB128 register followed \\
 & & & by SLEB128 offset \\
-DW\_OP\_piece & 0x93 &1& ULEB128 size of piece addressed \\
-DW\_OP\_deref\_size & 0x94 &1& 1-byte size of data retrieved \\
-DW\_OP\_xderef\_size & 0x95&1&1-byte size of data retrieved \\
-DW\_OP\_nop & 0x96 &0& \\
+DW\-\_OP\-\_piece & 0x93 &1& ULEB128 size of piece addressed \\
+DW\-\_OP\-\_deref\-\_size & 0x94 &1& 1-byte size of data retrieved \\
+DW\-\_OP\-\_xderef\-\_size & 0x95&1&1-byte size of data retrieved \\
+DW\-\_OP\-\_nop & 0x96 &0& \\
 
 
-DW\_OP\_push\_object\_address&0x97&0 &  \\
-DW\_OP\_call2&0x98&1& 2\dash byte offset of DIE \\
-DW\_OP\_call4&0x99&1& 4\dash byte offset of DIE \\
-DW\_OP\_call\_ref&0x9a&1& 4\dash\  or 8\dash byte\\
+DW\-\_OP\-\_push\-\_object\-\_address&0x97&0 &  \\
+DW\-\_OP\-\_call2&0x98&1& 2\dash byte offset of DIE \\
+DW\-\_OP\-\_call4&0x99&1& 4\dash byte offset of DIE \\
+DW\-\_OP\-\_call\-\_ref&0x9a&1& 4\dash\  or 8\dash byte\\
      &&& offset of DIE \\
-DW\_OP\_form\_tls\_address&0x9b &0& \\
-DW\_OP\_call\_frame\_cfa &0x9c &0& \\
-DW\_OP\_bit\_piece&0x9d &2&ULEB128 size followed by \\
+DW\-\_OP\-\_form\-\_tls\-\_address&0x9b &0& \\
+DW\-\_OP\-\_call\-\_frame\-\_cfa &0x9c &0& \\
+DW\-\_OP\-\_bit\-\_piece&0x9d &2&ULEB128 size followed by \\
 &&&ULEB128 offset\\
-DW\_OP\_implicit\_value&0x9e &2&ULEB128 size followed by \\
+DW\-\_OP\-\_implicit\-\_value&0x9e &2&ULEB128 size followed by \\
 &&&block of that size\\
-DW\_OP\_stack\_value\_cfa &0x9f &0& \\
-DW\_OP\_lo\_user\_cfa &0xe0 && \\
-DW\_OP\_hi\_user\_cfa &0xff && \\
+DW\-\_OP\-\_stack\-\_value\-\_cfa &0x9f &0& \\
+DW\-\_OP\-\_lo\-\_user\-\_cfa &0xe0 && \\
+DW\-\_OP\-\_hi\-\_user\-\_cfa &0xff && \\
 
 \end{longtable}
 \end{centering}
@@ -1227,7 +1248,7 @@ the corresponding compilation unit must be defined
 \section{Base Type Attribute Encodings}
 \label{datarep:basetypeattributeencodings}
 
-The encodings of the constants used in the DW\_AT\_encoding
+The encodings of the constants used in the \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}
 attribute are given in 
 Table \refersec{tab:basetypeencodingvalues}
 
@@ -1244,24 +1265,24 @@ Table \refersec{tab:basetypeencodingvalues}
   \hline
 \endlastfoot
 
-DW\_ATE\_address&0x01 \\
-DW\_ATE\_boolean&0x02 \\
-DW\_ATE\_complex\_float&0x03 \\
-DW\_ATE\_float&0x04 \\
-DW\_ATE\_signed&0x05 \\
-DW\_ATE\_signed\_char&0x06 \\
-DW\_ATE\_unsigned&0x07 \\
-DW\_ATE\_unsigned\_char&0x08 \\
-DW\_ATE\_imaginary\_float&0x09 \\
-DW\_ATE\_packed\_decimal&0x0a \\
-DW\_ATE\_numeric\_string&0x0b \\
-DW\_ATE\_edited&0x0c \\
-DW\_ATE\_signed\_fixed&0x0d \\
-DW\_ATE\_unsigned\_fixed&0x0e \\
-DW\_ATE\_decimal\_float & 0x0f \\
-DW\_ATE\_UTF \ddag & 0x10 \\
-DW\_ATE\_lo\_user & 0x80 \\
-DW\_ATE\_hi\_user & 0xff \\
+DW\-\_ATE\-\_address&0x01 \\
+DW\-\_ATE\-\_boolean&0x02 \\
+DW\-\_ATE\-\_complex\-\_float&0x03 \\
+DW\-\_ATE\-\_float&0x04 \\
+DW\-\_ATE\-\_signed&0x05 \\
+DW\-\_ATE\-\_signed\-\_char&0x06 \\
+DW\-\_ATE\-\_unsigned&0x07 \\
+DW\-\_ATE\-\_unsigned\-\_char&0x08 \\
+DW\-\_ATE\-\_imaginary\-\_float&0x09 \\
+DW\-\_ATE\-\_packed\-\_decimal&0x0a \\
+DW\-\_ATE\-\_numeric\-\_string&0x0b \\
+DW\-\_ATE\-\_edited&0x0c \\
+DW\-\_ATE\-\_signed\-\_fixed&0x0d \\
+DW\-\_ATE\-\_unsigned\-\_fixed&0x0e \\
+DW\-\_ATE\-\_decimal\-\_float & 0x0f \\
+DW\-\_ATE\-\_UTF \ddag & 0x10 \\
+DW\-\_ATE\-\_lo\-\_user & 0x80 \\
+DW\-\_ATE\-\_hi\-\_user & 0xff \\
 
 \end{longtable}
 \ddag  Base type encoding new in DWARF Version 4
@@ -1269,7 +1290,7 @@ DW\_ATE\_hi\_user & 0xff \\
 
 
 The encodings of the constants used in the 
-DW\_AT\_decimal\_sign attribute 
+\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign} attribute 
 are given in 
 Table \refersec{tab:decimalsignencodings}.
 
@@ -1287,17 +1308,17 @@ Table \refersec{tab:decimalsignencodings}.
   \hline
 \endlastfoot
 
-DW\_DS\_unsigned & 0x01  \\
-DW\_DS\_leading\_overpunch & 0x02  \\
-DW\_DS\_trailing\_overpunch & 0x03  \\
-DW\_DS\_leading\_separate & 0x04  \\
-DW\_DS\_trailing\_separate & 0x05  \\
+DW\-\_DS\-\_unsigned & 0x01  \\
+DW\-\_DS\-\_leading\-\_overpunch & 0x02  \\
+DW\-\_DS\-\_trailing\-\_overpunch & 0x03  \\
+DW\-\_DS\-\_leading\-\_separate & 0x04  \\
+DW\-\_DS\-\_trailing\-\_separate & 0x05  \\
 
 \end{longtable}
 \end{centering}
 
 The encodings of the constants used in the 
-DW\_AT\_endianity attribute are given in 
+\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} attribute are given in 
 Table \refersec{tab:endianityencodings}.
 
 \begin{centering}
@@ -1313,18 +1334,18 @@ Table \refersec{tab:endianityencodings}.
   \hline
 \endlastfoot
 
-DW\_END\_default  & 0x00 \\
-DW\_END\_big & 0x01 \\
-DW\_END\_little & 0x02 \\
-DW\_END\_lo\_user & 0x40 \\
-DW\_END\_hi\_user & 0xff \\
+DW\-\_END\-\_default  & 0x00 \\
+DW\-\_END\-\_big & 0x01 \\
+DW\-\_END\-\_little & 0x02 \\
+DW\-\_END\-\_lo\-\_user & 0x40 \\
+DW\-\_END\-\_hi\-\_user & 0xff \\
 
 \end{longtable}
 \end{centering}
 
 \section{Accessibility Codes}
 \label{datarep:accessibilitycodes}
-The encodings of the constants used in the DW\_AT\_accessibility
+The encodings of the constants used in the \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}
 attribute are given in 
 Table \refersec{tab:accessibilityencodings}.
 
@@ -1341,9 +1362,9 @@ Table \refersec{tab:accessibilityencodings}.
   \hline
 \endlastfoot
 
-DW\_ACCESS\_public&0x01  \\
-DW\_ACCESS\_protected&0x02 \\
-DW\_ACCESS\_private&0x03 \\
+DW\-\_ACCESS\-\_public&0x01  \\
+DW\-\_ACCESS\-\_protected&0x02 \\
+DW\-\_ACCESS\-\_private&0x03 \\
 
 \end{longtable}
 \end{centering}
@@ -1352,7 +1373,7 @@ DW\_ACCESS\_private&0x03 \\
 \section{Visibility Codes}
 \label{datarep:visibilitycodes}
 The encodings of the constants used in the 
-DW\_AT\_visibility attribute are given in 
+\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} attribute are given in 
 Table \refersec{tab:visibilityencodings}. 
 
 \begin{centering}
@@ -1368,9 +1389,9 @@ Table \refersec{tab:visibilityencodings}.
   \hline
 \endlastfoot
 
-DW\_VIS\_local&0x01 \\
-DW\_VIS\_exported&0x02 \\
-DW\_VIS\_qualified&0x03 \\
+DW\-\_VIS\-\_local&0x01 \\
+DW\-\_VIS\-\_exported&0x02 \\
+DW\-\_VIS\-\_qualified&0x03 \\
 
 \end{longtable}
 \end{centering}
@@ -1379,7 +1400,7 @@ DW\_VIS\_qualified&0x03 \\
 \label{datarep:vitualitycodes}
 
 The encodings of the constants used in the 
-DW\_AT\_virtuality attribute are given in 
+\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} attribute are given in 
 Table \refersec{tab:virtualityencodings}.
 
 \begin{centering}
@@ -1395,9 +1416,9 @@ Table \refersec{tab:virtualityencodings}.
   \hline
 \endlastfoot
 
-DW\_VIRTUALITY\_none&0x00 \\
-DW\_VIRTUALITY\_virtual&0x01 \\
-DW\_VIRTUALITY\_pure\_virtual&0x02 \\
+DW\-\_VIRTUALITY\-\_none&0x00 \\
+DW\-\_VIRTUALITY\-\_virtual&0x01 \\
+DW\-\_VIRTUALITY\-\_pure\-\_virtual&0x02 \\
 
 
 
@@ -1405,14 +1426,14 @@ DW\_VIRTUALITY\_pure\_virtual&0x02 \\
 \end{centering}
 
 The value 
-DW\_VIRTUALITY\_none is equivalent to the absence of the 
-DW\_AT\_virtuality
+DW\-\_VIRTUALITY\-\_none is equivalent to the absence of the 
+\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}
 attribute.
 
 \section{Source Languages}
 \label{datarep:sourcelanguages}
 
-The encodings of the constants used in the DW\_AT\_language
+The encodings of the constants used in the \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}
 attribute are given in 
 Table \refersec{tab:languageencodings}.
 Names marked with
@@ -1422,8 +1443,8 @@ and their associated values are reserved, but the
 languages they represent are not well supported. 
 Table \refersec{tab:languageencodings}
 also shows the default lower bound, if any, assumed for
-an omitted DW\_AT\_lower\_bound attribute in the context of a
-\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type} debugging information entry for each
+an omitted \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound} attribute in the context of a
+\livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type} debugging information entry for each
 defined language.
 
 \begin{centering}
@@ -1439,28 +1460,28 @@ defined language.
   \hline
 \endlastfoot
 
-DW\_LANG\_C89&0x0001&0       \\
-DW\_LANG\_C&0x0002&0       \\
-DW\_LANG\_Ada83 \dag &0x0003&1       \\
-DW\_LANG\_C\_plus\_plus &0x0004&0       \\
-DW\_LANG\_Cobol74 \dag &0x0005&1       \\
-DW\_LANG\_Cobol85 \dag &0x0006&1       \\
-DW\_LANG\_Fortran77&0x0007&1       \\
-DW\_LANG\_Fortran90&0x0008&1       \\
-DW\_LANG\_Pascal83&0x0009&1       \\
-DW\_LANG\_Modula2&0x000a&1       \\
-DW\_LANG\_Java&0x000b&0       \\
-DW\_LANG\_C99&0x000c&0       \\
-DW\_LANG\_Ada95 \dag &0x000d&1       \\
-DW\_LANG\_Fortran95 &0x000e&1       \\
-DW\_LANG\_PLI \dag &0x000f&1 \\
-DW\_LANG\_ObjC&0x0010&0 \\
-DW\_LANG\_ObjC\_plus\_plus&0x0011&0 \\
-DW\_LANG\_UPC&0x0012&0 \\
-DW\_LANG\_D&0x0013&0 \\
-DW\_LANG\_Python \dag &0x0014&0 \\
-DW\_LANG\_lo\_user&0x8000 & \\
-DW\_LANG\_hi\_user&0xffff & \\
+DW\-\_LANG\-\_C89&0x0001&0       \\
+DW\-\_LANG\-\_C&0x0002&0       \\
+DW\-\_LANG\-\_Ada83 \dag &0x0003&1       \\
+DW\-\_LANG\-\_C\-\_plus\-\_plus &0x0004&0       \\
+DW\-\_LANG\-\_Cobol74 \dag &0x0005&1       \\
+DW\-\_LANG\-\_Cobol85 \dag &0x0006&1       \\
+DW\-\_LANG\-\_Fortran77&0x0007&1       \\
+DW\-\_LANG\-\_Fortran90&0x0008&1       \\
+DW\-\_LANG\-\_Pascal83&0x0009&1       \\
+DW\-\_LANG\-\_Modula2&0x000a&1       \\
+DW\-\_LANG\-\_Java&0x000b&0       \\
+DW\-\_LANG\-\_C99&0x000c&0       \\
+DW\-\_LANG\-\_Ada95 \dag &0x000d&1       \\
+DW\-\_LANG\-\_Fortran95 &0x000e&1       \\
+DW\-\_LANG\-\_PLI \dag &0x000f&1 \\
+DW\-\_LANG\-\_ObjC&0x0010&0 \\
+DW\-\_LANG\-\_ObjC\-\_plus\-\_plus&0x0011&0 \\
+DW\-\_LANG\-\_UPC&0x0012&0 \\
+DW\-\_LANG\-\_D&0x0013&0 \\
+DW\-\_LANG\-\_Python \dag &0x0014&0 \\
+DW\-\_LANG\-\_lo\-\_user&0x8000 & \\
+DW\-\_LANG\-\_hi\-\_user&0xffff & \\
 
 \end{longtable}
 \dag See text
@@ -1470,14 +1491,14 @@ DW\_LANG\_hi\_user&0xffff & \\
 \label{datarep:addressclassencodings}
 
 The value of the common address class encoding 
-DW\_ADDR\_none is 0.
+DW\-\_ADDR\-\_none is 0.
 
 
 \section{Identifier Case}
 \label{datarep:identifiercase}
 
 The encodings of the constants used in the 
-DW\_AT\_identifier\_case attribute are given in 
+\livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case} attribute are given in 
 Table \refersec{tab:identifiercaseencodings}.
 
 \begin{centering}
@@ -1492,17 +1513,17 @@ Table \refersec{tab:identifiercaseencodings}.
 \endfoot
   \hline
 \endlastfoot
-DW\_ID\_case\_sensitive&0x00     \\
-DW\_ID\_up\_case&0x01     \\
-DW\_ID\_down\_case&0x02     \\
-DW\_ID\_case\_insensitive&0x03     \\
+DW\-\_ID\-\_case\-\_sensitive&0x00     \\
+DW\-\_ID\-\_up\-\_case&0x01     \\
+DW\-\_ID\-\_down\-\_case&0x02     \\
+DW\-\_ID\-\_case\-\_insensitive&0x03     \\
 \end{longtable}
 \end{centering}
 
 \section{Calling Convention Encodings}
 \label{datarep:callingconventionencodings}
 The encodings of the constants used in the 
-DW\_AT\_calling\_convention attribute are given in
+\livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention} attribute are given in
 Table \refersec{tab:callingconventionencodings}.
 
 \begin{centering}
@@ -1518,11 +1539,11 @@ Table \refersec{tab:callingconventionencodings}.
   \hline
 \endlastfoot
 
-DW\_CC\_normal&0x01     \\
-DW\_CC\_program&0x02     \\
-DW\_CC\_nocall&0x03     \\
-DW\_CC\_lo\_user&0x40     \\
-DW\_CC\_hi\_user&0xff     \\
+DW\-\_CC\-\_normal&0x01     \\
+DW\-\_CC\-\_program&0x02     \\
+DW\-\_CC\-\_nocall&0x03     \\
+DW\-\_CC\-\_lo\-\_user&0x40     \\
+DW\-\_CC\-\_hi\-\_user&0xff     \\
 
 \end{longtable}
 \end{centering}
@@ -1531,7 +1552,7 @@ DW\_CC\_hi\_user&0xff     \\
 \label{datarep:inlinecodes}
 
 The encodings of the constants used in the 
-DW\_AT\_inline attribute are given in 
+\livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute are given in 
 Table \refersec{tab:inlineencodings}.
 
 \begin{centering}
@@ -1547,10 +1568,10 @@ Table \refersec{tab:inlineencodings}.
   \hline
 \endlastfoot
 
-DW\_INL\_not\_inlined&0x00      \\
-DW\_INL\_inlined&0x01      \\
-DW\_INL\_declared\_not\_inlined&0x02      \\
-DW\_INL\_declared\_inlined&0x03      \\
+DW\-\_INL\-\_not\-\_inlined&0x00      \\
+DW\-\_INL\-\_inlined&0x01      \\
+DW\-\_INL\-\_declared\-\_not\-\_inlined&0x02      \\
+DW\-\_INL\-\_declared\-\_inlined&0x03      \\
 
 \end{longtable}
 \end{centering}
@@ -1562,7 +1583,7 @@ DW\_INL\_declared\_inlined&0x03      \\
 \label{datarep:arrayordering}
 
 The encodings of the constants used in the 
-DW\_AT\_ordering attribute are given in 
+\livelink{chap:DWATordering}{DW\-\_AT\-\_ordering} attribute are given in 
 Table \refersec{tab:orderingencodings}.
 
 \begin{centering}
@@ -1578,8 +1599,8 @@ Table \refersec{tab:orderingencodings}.
   \hline
 \endlastfoot
 
-DW\_ORD\_row\_major&0x00  \\
-DW\_ORD\_col\_major&0x01  \\
+DW\-\_ORD\-\_row\-\_major&0x00  \\
+DW\-\_ORD\-\_col\-\_major&0x01  \\
 
 \end{longtable}
 \end{centering}
@@ -1589,7 +1610,7 @@ DW\_ORD\_col\_major&0x01  \\
 \label{datarep:discriminantlists}
 
 The descriptors used in the 
-DW\_AT\_discr\_list attribute are 
+\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list} attribute are 
 encoded as 1\dash byte constants. The
 defined values are given in 
 Table \refersec{tab:discriminantdescriptorencodings}.
@@ -1608,8 +1629,8 @@ Table \refersec{tab:discriminantdescriptorencodings}.
   \hline
 \endlastfoot
 
-DW\_DSC\_label&0x00 \\
-DW\_DSC\_range&0x01 \\
+DW\-\_DSC\-\_label&0x00 \\
+DW\-\_DSC\-\_range&0x01 \\
 
 \end{longtable}
 \end{centering}
@@ -1757,18 +1778,18 @@ Table \refersec{tab:linenumberstandardopcodeencodings}.
   \hline
 \endlastfoot
 
-DW\_LNS\_copy&0x01 \\
-DW\_LNS\_advance\_pc&0x02 \\
-DW\_LNS\_advance\_line&0x03 \\
-DW\_LNS\_set\_file&0x04 \\
-DW\_LNS\_set\_column&0x05 \\
-DW\_LNS\_negate\_stmt&0x06 \\
-DW\_LNS\_set\_basic\_block&0x07 \\
-DW\_LNS\_const\_add\_pc*0x08 \\
-DW\_LNS\_fixed\_advance\_pc&0x09 \\
-DW\_LNS\_set\_prologue\_end&0x0a \\
-DW\_LNS\_set\_epilogue\_begin&0x0b \\
-DW\_LNS\_set\_isa&0x0c \\
+DW\-\_LNS\-\_copy&0x01 \\
+DW\-\_LNS\-\_advance\-\_pc&0x02 \\
+DW\-\_LNS\-\_advance\-\_line&0x03 \\
+DW\-\_LNS\-\_set\-\_file&0x04 \\
+DW\-\_LNS\-\_set\-\_column&0x05 \\
+DW\-\_LNS\-\_negate\-\_stmt&0x06 \\
+DW\-\_LNS\-\_set\-\_basic\-\_block&0x07 \\
+DW\-\_LNS\-\_const\-\_add\-\_pc*0x08 \\
+DW\-\_LNS\-\_fixed\-\_advance\-\_pc&0x09 \\
+DW\-\_LNS\-\_set\-\_prologue\-\_end&0x0a \\
+DW\-\_LNS\-\_set\-\_epilogue\-\_begin&0x0b \\
+DW\-\_LNS\-\_set\-\_isa&0x0c \\
 
 \end{longtable}
 \end{centering}
@@ -1790,12 +1811,12 @@ Table \refersec{tab:linenumberextendedopcodeencodings}.
   \hline
 \endlastfoot
 
-DW\_LNE\_end\_sequence&0x01    \\
-DW\_LNE\_set\_address&0x02\\
-DW\_LNE\_define\_file&0x03\\
-DW\_LNE\_set\_discriminator \ddag &0x04   \\
-DW\_LNE\_lo\_user&0x80   \\
-DW\_LNE\_hi\_user&0xff   \\
+DW\-\_LNE\-\_end\-\_sequence&0x01    \\
+DW\-\_LNE\-\_set\-\_address&0x02\\
+DW\-\_LNE\-\_define\-\_file&0x03\\
+DW\-\_LNE\-\_set\-\_discriminator \ddag &0x04   \\
+DW\-\_LNE\-\_lo\-\_user&0x80   \\
+DW\-\_LNE\-\_hi\-\_user&0xff   \\
 
 \end{longtable}
 \ddag Extended opcode new in DWARF Version 4.
@@ -1806,7 +1827,7 @@ DW\_LNE\_hi\_user&0xff   \\
 
 The source line numbers and source file indices encoded in the
 macro information section are represented as unsigned LEB128
-numbers as are the constants in a DW\_MACINFO\_vendor\_ext entry.
+numbers as are the constants in a DW\-\_MACINFO\-\_vendor\-\_ext entry.
 
 The macinfo type is encoded as a single byte. 
 The encodings are given in 
@@ -1826,11 +1847,11 @@ Table \refersec{tab:macinfotypeencodings}.
   \hline
 \endlastfoot
 
-DW\_MACINFO\_define&0x01 \\
-DW\_MACINFO\_undef&0x02 \\
-DW\_MACINFO\_start\_file&0x03 \\
-DW\_MACINFO\_end\_file&0x04 \\
-DW\_MACINFO\_vendor\_ext&0xff \\
+DW\-\_MACINFO\-\_define&0x01 \\
+DW\-\_MACINFO\-\_undef&0x02 \\
+DW\-\_MACINFO\-\_start\-\_file&0x03 \\
+DW\-\_MACINFO\-\_end\-\_file&0x04 \\
+DW\-\_MACINFO\-\_vendor\-\_ext&0xff \\
 
 \end{longtable}
 \end{centering}
@@ -1868,35 +1889,35 @@ Table \refersec{tab:callframeinstructionencodings}.
   \hline
 \endlastfoot
 
-DW\_CFA\_advance\_loc&0x1&delta & \\
-DW\_CFA\_offset&0x2&register&ULEB128 offset \\
-DW\_CFA\_restore&0x3&register & & \\
-DW\_CFA\_nop&0&0 & & \\
-DW\_CFA\_set\_loc&0&0x01&address & \\
-DW\_CFA\_advance\_loc1&0&0x02&1\dash byte delta & \\
-DW\_CFA\_advance\_loc2&0&0x03&2\dash byte delta & \\
-DW\_CFA\_advance\_loc4&0&0x04&4\dash byte delta & \\
-DW\_CFA\_offset\_extended&0&0x05&ULEB128 register&ULEB128 offset \\
-DW\_CFA\_restore\_extended&0&0x06&ULEB128 register & \\
-DW\_CFA\_undefined&0&0x07&ULEB128 register & \\
-DW\_CFA\_same\_value&0&0x08 &ULEB128 register & \\
-DW\_CFA\_register&0&0x09&ULEB128 register &ULEB128 offset \\
-DW\_CFA\_remember\_state&0&0x0a & & \\
-DW\_CFA\_restore\_state&0&0x0b & & \\
-DW\_CFA\_def\_cfa&0&0x0c &ULEB128 register&ULEB128 offset \\
-DW\_CFA\_def\_cfa\_register&0&0x0d&ULEB128 register & \\
-DW\_CFA\_def\_cfa\_offset&0&0x0e &ULEB128 offset & \\
-DW\_CFA\_def\_cfa\_expression&0&0x0f &BLOCK  \\
-DW\_CFA\_expression&0&0x10&ULEB128 register & BLOCK \\
-
-DW\_CFA\_offset\_extended\_sf&0&0x11&ULEB128 register&SLEB128 offset \\
-DW\_CFA\_def\_cfa\_sf&0&0x12&ULEB128 register&SLEB128 offset \\
-DW\_CFA\_def\_cfa\_offset\_sf&0&0x13&SLEB128 offset & \\
-DW\_CFA\_val\_offset&0&0x14&ULEB128&ULEB128 \\
-DW\_CFA\_val\_offset\_sf&0&0x15&ULEB128&SLEB128 \\
-DW\_CFA\_val\_expression&0&0x16&ULEB128&BLOCK  \\
-DW\_CFA\_lo\_user&0&0x1c   & & \\
-DW\_CFA\_hi\_user&0&0x3f & & \\
+DW\-\_CFA\-\_advance\-\_loc&0x1&delta & \\
+DW\-\_CFA\-\_offset&0x2&register&ULEB128 offset \\
+DW\-\_CFA\-\_restore&0x3&register & & \\
+DW\-\_CFA\-\_nop&0&0 & & \\
+DW\-\_CFA\-\_set\-\_loc&0&0x01&address & \\
+DW\-\_CFA\-\_advance\-\_loc1&0&0x02&1\dash byte delta & \\
+DW\-\_CFA\-\_advance\-\_loc2&0&0x03&2\dash byte delta & \\
+DW\-\_CFA\-\_advance\-\_loc4&0&0x04&4\dash byte delta & \\
+DW\-\_CFA\-\_offset\-\_extended&0&0x05&ULEB128 register&ULEB128 offset \\
+DW\-\_CFA\-\_restore\-\_extended&0&0x06&ULEB128 register & \\
+DW\-\_CFA\-\_undefined&0&0x07&ULEB128 register & \\
+DW\-\_CFA\-\_same\-\_value&0&0x08 &ULEB128 register & \\
+DW\-\_CFA\-\_register&0&0x09&ULEB128 register &ULEB128 offset \\
+DW\-\_CFA\-\_remember\-\_state&0&0x0a & & \\
+DW\-\_CFA\-\_restore\-\_state&0&0x0b & & \\
+DW\-\_CFA\-\_def\-\_cfa&0&0x0c &ULEB128 register&ULEB128 offset \\
+DW\-\_CFA\-\_def\-\_cfa\-\_register&0&0x0d&ULEB128 register & \\
+DW\-\_CFA\-\_def\-\_cfa\-\_offset&0&0x0e &ULEB128 offset & \\
+DW\-\_CFA\-\_def\-\_cfa\-\_expression&0&0x0f &BLOCK  \\
+DW\-\_CFA\-\_expression&0&0x10&ULEB128 register & BLOCK \\
+
+DW\-\_CFA\-\_offset\-\_extended\-\_sf&0&0x11&ULEB128 register&SLEB128 offset \\
+DW\-\_CFA\-\_def\-\_cfa\-\_sf&0&0x12&ULEB128 register&SLEB128 offset \\
+DW\-\_CFA\-\_def\-\_cfa\-\_offset\-\_sf&0&0x13&SLEB128 offset & \\
+DW\-\_CFA\-\_val\-\_offset&0&0x14&ULEB128&ULEB128 \\
+DW\-\_CFA\-\_val\-\_offset\-\_sf&0&0x15&ULEB128&SLEB128 \\
+DW\-\_CFA\-\_val\-\_expression&0&0x16&ULEB128&BLOCK  \\
+DW\-\_CFA\-\_lo\-\_user&0&0x1c   & & \\
+DW\-\_CFA\-\_hi\-\_user&0&0x3f & & \\
 \end{longtable}
 \end{centering}
 
@@ -2020,7 +2041,7 @@ is nested inside another type or a namespace, append to S
 the type’s context as follows: For each surrounding type
 or namespace, beginning with the outermost such construct,
 append the letter 'C', the DWARF tag of the construct, and
-the name (taken from the DW\_AT\_name attribute) of the type
+the name (taken from the \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute) of the type
 or namespace (including its trailing null byte).
 
 \item  Append to S the letter 'D', followed by the DWARF tag of
@@ -2032,57 +2053,57 @@ append to S a marker letter (see below), the DWARF attribute
 code, and the attribute value.
 
 \begin{itemize}
-\item DW\_AT\_name
-\item DW\_AT\_accessibility
-\item DW\_AT\_address\_class
-\item DW\_AT\_allocated
-\item DW\_AT\_artificial
-\item DW\_AT\_associated
-\item DW\_AT\_binary\_scale
-\item DW\_AT\_bit\_offset
-\item DW\_AT\_bit\_size
-\item DW\_AT\_bit\_stride
-\item DW\_AT\_byte\_size
-\item DW\_AT\_byte\_stride
-\item DW\_AT\_const\_expr
-\item DW\_AT\_const\_value
-\item DW\_AT\_containing\_type
-\item DW\_AT\_count
-\item DW\_AT\_data\_bit\_offset
-\item DW\_AT\_data\_location
-\item DW\_AT\_data\_member\_location
-\item DW\_AT\_decimal\_scale
-\item DW\_AT\_decimal\_sign
-\item DW\_AT\_default\_value
-\item DW\_AT\_digit\_count
-\item DW\_AT\_discr
-\item DW\_AT\_discr\_list
-\item DW\_AT\_discr\_value
-\item DW\_AT\_encoding
-\item DW\_AT\_enum\_class
-\item DW\_AT\_endianity
-\item DW\_AT\_explicit
-\item DW\_AT\_is\_optional
-\item DW\_AT\_location
-\item DW\_AT\_lower\_bound
-\item DW\_AT\_mutable
-\item DW\_AT\_ordering
-\item DW\_AT\_picture\_string
-\item DW\_AT\_prototyped
-\item DW\_AT\_small
-\item DW\_AT\_segment
-\item DW\_AT\_string\_length
-\item DW\_AT\_threads\_scaled
-\item DW\_AT\_upper\_bound
-\item DW\_AT\_use\_location
-\item DW\_AT\_use\_UTF8
-\item DW\_AT\_variable\_parameter
-\item DW\_AT\_virtuality
-\item DW\_AT\_visibility
-\item DW\_AT\_vtable\_elem\_location
+\item \livelink{chap:DWATname}{DW\-\_AT\-\_name}
+\item \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}
+\item \livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class}
+\item \livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated}
+\item \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}
+\item \livelink{chap:DWATassociated}{DW\-\_AT\-\_associated}
+\item \livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale}
+\item \livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}
+\item \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}
+\item \livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride}
+\item \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}
+\item \livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}
+\item \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr}
+\item \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}
+\item \livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}
+\item \livelink{chap:DWATcount}{DW\-\_AT\-\_count}
+\item \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}
+\item \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}
+\item \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}
+\item \livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}
+\item \livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}
+\item \livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value}
+\item \livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count}
+\item \livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr}
+\item \livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}
+\item \livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value}
+\item \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}
+\item \livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class}
+\item \livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity}
+\item \livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit}
+\item \livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}
+\item \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}
+\item \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}
+\item \livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable}
+\item \livelink{chap:DWATordering}{DW\-\_AT\-\_ordering}
+\item \livelink{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string}
+\item \livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped}
+\item \livelink{chap:DWATsmall}{DW\-\_AT\-\_small}
+\item \livelink{chap:DWATsegment}{DW\-\_AT\-\_segment}
+\item \livelink{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length}
+\item \livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}
+\item \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}
+\item \livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location}
+\item \livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}
+\item \livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}
+\item \livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}
+\item \livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility}
+\item \livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}
 \end{itemize}
 
-Note that except for the initial DW\_AT\_name attribute,
+Note that except for the initial \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute,
 attributes are appended in order according to the alphabetical
 spelling of their identifier.
 
@@ -2103,21 +2124,21 @@ the value consists of the form code (encoded as an unsigned
 LEB128 value) followed by the encoding of the value according
 to the form code. To ensure reproducibility of the signature,
 the set of forms used in the signature computation is limited
-to the following: DW\_FORM\_sdata
-DW\_FORM\_flag
-DW\_FORM\_string,
-and DW\_FORM\_block.
+to the following: \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}
+\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}
+\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string},
+and \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}.
 
 \item If the tag in Step 3 is one of \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type},
 \livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type}, 
 \livelink{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type},
 \livelink{chap:DWTAGptrtomembertype}{DW\-\_TAG\-\_ptr\-\_to\-\_member\-\_type}, 
 or \livelink{chap:DWTAGfriend}{DW\-\_TAG\-\_friend}, and the referenced
-type (via the DW\-\_AT\-\_type or 
-DW\-\_AT\-\_friend attribute) has a
-DW\-\_AT\-\_name attribute, append to S the letter 'N', the DWARF
-attribute code (DW\-\_AT\-\_type or 
-DW\-\_AT\-\_friend), the context of
+type (via the \livelink{chap:DWATtype}{DW\-\_AT\-\_type} or 
+\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend} attribute) has a
+\livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, append to S the letter 'N', the DWARF
+attribute code (\livelink{chap:DWATtype}{DW\-\_AT\-\_type} or 
+\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend}), the context of
 the type (according to the method in Step 2), the letter 'E',
 and the name of the type. For \livelink{chap:DWTAGfriend}{DW\-\_TAG\-\_friend}, if the referenced
 entry is a \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}, the context is omitted and the
@@ -2130,17 +2151,17 @@ name to be used is the ABI-specific name of the subprogram
 \livelink{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type},
 \livelink{chap:DWTAGptrtomembertype}{DW\-\_TAG\-\_ptr\-\_to\-\_member\-\_type}, or 
 \livelink{chap:DWTAGfriend}{DW\-\_TAG\-\_friend}, but has
-a DW\-\_AT\-\_type attribute, or if the referenced type (via
-the DW\-\_AT\-\_type or 
-DW\-\_AT\-\_friend attribute) does not have a
-DW\-\_AT\-\_name attribute, the attribute is processed according to
+a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute, or if the referenced type (via
+the \livelink{chap:DWATtype}{DW\-\_AT\-\_type} or 
+\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend} attribute) does not have a
+\livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, the attribute is processed according to
 the method in Step 4 for an attribute that refers to another
 type entry.
 
 
 \item Visit each child C of the debugging information
 entry as follows: If C is a nested type entry or a member
-function entry, and has a DW\-\_AT\-\_name attribute, append to
+function entry, and has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, append to
 S the letter 'S', the tag of C, and its name; otherwise,
 process C recursively by performing Steps 3 through 7,
 appending the result to S. Following the last child (or if
@@ -2151,10 +2172,10 @@ there are no children), append a zero byte.
 
 For the purposes of this algorithm, if a debugging information
 entry S has a 
-DW\-\_AT\-\_specification 
+\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} 
 attribute that refers to
 another entry D (which has a 
-DW\-\_AT\-\_declaration 
+\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} 
 attribute),
 then S inherits the attributes and children of D, and S is
 processed as if those attributes and children were present in
@@ -2207,7 +2228,7 @@ separate type unit if any of the following apply:}
 
 \item \textit{The entry has an attribute whose value is a location
 expression, and the location expression contains a reference to
-another debugging information entry (e.g., a DW\_OP\_call\_ref
+another debugging information entry (e.g., a DW\-\_OP\-\_call\-\_ref
 operator), as it is unlikely that the entry will remain
 identical across compilation units.}
 
@@ -2223,17 +2244,17 @@ a type.}
 \textit{Certain attributes are not included in the type signature:}
 
 \begin{itemize}
-\item \textit{The DW\_AT\_declaration attribute is not included because it
+\item \textit{The \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute is not included because it
 indicates that the debugging information entry represents an
 incomplete declaration, and incomplete declarations should
 not be placed in separate type units.}
 
-\item \textit{The DW\_AT\_description attribute is not included because
+\item \textit{The \livelink{chap:DWATdescription}{DW\-\_AT\-\_description} attribute is not included because
 it does not provide any information unique to the defining
 declaration of the type.}
 
-\item \textit{The DW\_AT\_decl\_file, DW\_AT\_decl\_line, and
-DW\_AT\_decl\_column attributes are not included because they
+\item \textit{The \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}, \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}, and
+\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column} attributes are not included because they
 may vary from one source file to the next, and would prevent
 two otherwise identical type declarations from producing the
 same hash.}