means include all three of the
\addtoindex{declaration coordinates}
\addtoindexx{declaration coordinates|see {DW\_AT\_decl\_file,DW\_AT\_decl\_line, DW\_AT\_decl\_column}}
-\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column},
-\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}, and
-\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}.
+\livelink{chap:DWATdeclcolumn}{DW\_AT\_decl\_column},
+\livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}, and
+\livelink{chap:DWATdeclline}{DW\_AT\_decl\_line}.
\label{tab:attributesbytag}
\setlength{\extrarowheight}{0.1cm}
\hline
\endlastfoot
-\livelink{chap:DWTAGaccessdeclaration}{DW\-\_TAG\-\_access\-\_declaration}
+\livelink{chap:DWTAGaccessdeclaration}{DW\_TAG\_access\_declaration}
& DECL \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type}
+\livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATordering}{DW\-\_AT\-\_ordering} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATordering}{DW\_AT\_ordering} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
&DECL \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale} \\
-&\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale} \\
-&\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count} \\
-&\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding} \\
-&\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATsmall}{DW\-\_AT\-\_small} \\
-
-\hline
-\livelink{chap:DWTAGcatchblock}{DW\-\_TAG\-\_catch\-\_block}
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbinaryscale}{DW\_AT\_binary\_scale} \\
+&\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale} \\
+&\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATdigitcount}{DW\_AT\_digit\_count} \\
+&\livelink{chap:DWATencoding}{DW\_AT\_encoding} \\
+&\livelink{chap:DWATendianity}{DW\_AT\_endianity} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATpicturestring}{DW\_AT\_picture\_string} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATsmall}{DW\_AT\_small} \\
+
+\hline
+\livelink{chap:DWTAGcatchblock}{DW\_TAG\_catch\_block}
&DECL \\*
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type}
+\livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \\
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGcommonblock}{DW\-\_TAG\-\_common\-\_block}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATsignature}{DW\_AT\_signature} \\
+&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGcommonblock}{DW\_TAG\_common\_block}
&DECL \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \\
-&\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \\
+&\livelink{chap:DWATlocation}{DW\_AT\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
\hline
-\livelink{chap:DWTAGcommoninclusion}{DW\-\_TAG\-\_common\-\_inclusion}
+\livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion}
&DECL \\
-&\livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
-&\livelink{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types} \\
-&\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir} \\
-&\livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info} \\
-&\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list} \\
-&\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8} \\
-
-\hline
-\livelink{chap:DWTAGcondition}{DW\-\_TAG\-\_condition}
+&\livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+&\livelink{chap:DWATbasetypes}{DW\_AT\_base\_types} \\
+&\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir} \\
+&\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case} \\
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
+&\livelink{chap:DWATlanguage}{DW\_AT\_language} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATmacroinfo}{DW\_AT\_macro\_info} \\
+&\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATproducer}{DW\_AT\_producer} \\
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list} \\
+&\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8} \\
+
+\hline
+\livelink{chap:DWTAGcondition}{DW\_TAG\_condition}
&DECL \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGconsttype}{DW\-\_TAG\-\_const\-\_type}
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
+\livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type}
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
\hline
-\livelink{chap:DWTAGconstant}{DW\-\_TAG\-\_constant}
+\livelink{chap:DWTAGconstant}{DW\_TAG\_constant}
&DECL \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} \\
-&\livelink{chap:DWATexternal}{DW\-\_AT\-\_external} \\
-&\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATendianity}{DW\_AT\_endianity} \\
+&\livelink{chap:DWATexternal}{DW\_AT\_external} \\
+&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
\hline
-\livelink{chap:DWTAGdwarfprocedure}{DW\-\_TAG\-\_dwarf\-\_procedure}
-&\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} \\
+\livelink{chap:DWTAGdwarfprocedure}{DW\_TAG\_dwarf\_procedure}
+&\livelink{chap:DWATlocation}{DW\_AT\_location} \\
\hline
-\livelink{chap:DWTAGentrypoint}{DW\-\_TAG\-\_entry\-\_point}
+\livelink{chap:DWTAGentrypoint}{DW\_TAG\_entry\_point}
&DECL \\
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base} \\
-&\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-
-\hline
-\livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type}
+&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATframebase}{DW\_AT\_frame\_base} \\
+&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstaticlink}{DW\_AT\_static\_link} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+
+\hline
+\livelink{chap:DWTAGenumerationtype}{DW\_TAG\_enumeration\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \\
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGenumerator}{DW\-\_TAG\-\_enumerator}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATenumclass}{DW\_AT\_enum\_class} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATsignature}{DW\_AT\_signature} \\
+&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator}
&DECL \\
-&\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGfiletype}{DW\-\_TAG\-\_file\-\_type}
+\livelink{chap:DWTAGfiletype}{DW\_TAG\_file\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} \\
-&\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} \\
-&\livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} \\
-&\livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional} \\
-&\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter} \\
-
-\hline
-\livelink{chap:DWTAGfriend}{DW\-\_TAG\-\_friend}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATartificial}{DW\_AT\_artificial} \\
+&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} \\
+&\livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATendianity}{DW\_AT\_endianity} \\
+&\livelink{chap:DWATisoptional}{DW\_AT\_is\_optional} \\
+&\livelink{chap:DWATlocation}{DW\_AT\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter} \\
+
+\hline
+\livelink{chap:DWTAGfriend}{DW\_TAG\_friend}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATfriend}{DW\_AT\_friend} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration}
+\livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}
&DECL \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATimport}{DW\-\_AT\-\_import} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATimport}{DW\_AT\_import} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
\hline
-\livelink{chap:DWTAGimportedmodule}{DW\-\_TAG\-\_imported\-\_module}
+\livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module}
&DECL \\
-&\livelink{chap:DWATimport}{DW\-\_AT\-\_import} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
+&\livelink{chap:DWATimport}{DW\_AT\_import} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
\hline
-\livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}
-&\livelink{chap:DWATimport}{DW\-\_AT\-\_import} \\
+\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}
+&\livelink{chap:DWATimport}{DW\_AT\_import} \\
\hline
-\livelink{chap:DWTAGinheritance}{DW\-\_TAG\-\_inheritance}
+\livelink{chap:DWTAGinheritance}{DW\_TAG\_inheritance}
&DECL \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} \\
-
-\hline
-\livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine}
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATcallcolumn}{DW\-\_AT\-\_call\-\_column} \\
-&\livelink{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file} \\
-&\livelink{chap:DWATcallline}{DW\-\_AT\-\_call\-\_line} \\
-&\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} \\
-&\livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline} \\
-
-\hline
-\livelink{chap:DWTAGinterfacetype}{DW\-\_TAG\-\_interface\-\_type}
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality} \\
+
+\hline
+\livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATcallcolumn}{DW\_AT\_call\_column} \\
+&\livelink{chap:DWATcallfile}{DW\_AT\_call\_file} \\
+&\livelink{chap:DWATcallline}{DW\_AT\_call\_line} \\
+&\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} \\
+&\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc} \\
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
+&\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtrampoline}{DW\_AT\_trampoline} \\
+
+\hline
+\livelink{chap:DWTAGinterfacetype}{DW\_TAG\_interface\_type}
&DECL \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
\hline
-\livelink{chap:DWTAGlabel}{DW\-\_TAG\-\_label}
+\livelink{chap:DWTAGlabel}{DW\_TAG\_label}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGlexicalblock}{DW\-\_TAG\-\_lexical\-\_block}
+\livelink{chap:DWTAGlexicalblock}{DW\_TAG\_lexical\_block}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+\livelink{chap:DWTAGmember}{DW\_TAG\_member}
&DECL \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} \\
-&\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGmodule}{DW\-\_TAG\-\_module}
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset} \\
+&\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATmutable}{DW\_AT\_mutable} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGmodule}{DW\_TAG\_module}
&DECL \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATpriority}{DW\-\_AT\-\_priority} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\*
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\*
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGnamelist}{DW\-\_TAG\-\_namelist}
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc} \\
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATpriority}{DW\_AT\_priority} \\
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\*
+&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\*
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGnamelist}{DW\_TAG\_namelist}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
\hline
-\livelink{chap:DWTAGnamelistitem}{DW\-\_TAG\-\_namelist\-\_item}
+\livelink{chap:DWTAGnamelistitem}{DW\_TAG\_namelist\_item}
&DECL \\
-&\livelink{chap:DWATnamelistitem}{DW\-\_AT\-\_namelist\-\_item} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATnamelistitem}{DW\_AT\_namelist\_item} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
+\livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
&DECL \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATextension}{DW\-\_AT\-\_extension} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-
-\hline
-\livelink{chap:DWTAGpackedtype}{DW\-\_TAG\-\_packed\-\_type}
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-
-\hline
-\livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit}
-&\livelink{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types} \\
-&\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info} \\
-&\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list} \\
-&\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8} \\
-
-\hline
-\livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATextension}{DW\_AT\_extension} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+
+\hline
+\livelink{chap:DWTAGpackedtype}{DW\_TAG\_packed\_type}
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+
+\hline
+\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit}
+&\livelink{chap:DWATbasetypes}{DW\_AT\_base\_types} \\
+&\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case} \\
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
+&\livelink{chap:DWATlanguage}{DW\_AT\_language} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATmacroinfo}{DW\_AT\_macro\_info} \\
+&\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATproducer}{DW\_AT\_producer} \\
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list} \\
+&\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8} \\
+
+\hline
+\livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
&DECL \\
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
+&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
\hline
-\livelink{chap:DWTAGptrtomembertype}{DW\-\_TAG\-\_ptr\-\_to\-\_member\-\_type}
+\livelink{chap:DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type}
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\*
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\*
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-
-\hline
-\livelink{chap:DWTAGrestricttype}{DW\-\_TAG\-\_restrict\-\_type}
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-
-\hline
-\livelink{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATcontainingtype}{DW\_AT\_containing\_type} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATuselocation}{DW\_AT\_use\_location} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}
+&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\*
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\*
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+
+\hline
+\livelink{chap:DWTAGrestricttype}{DW\_TAG\_restrict\_type}
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+
+\hline
+\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type}
&DECL \\
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
+&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
\hline
-\livelink{chap:DWTAGsettype}{DW\-\_TAG\-\_set\-\_type}
+\livelink{chap:DWTAGsettype}{DW\_TAG\_set\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGsharedtype}{DW\-\_TAG\-\_shared\-\_type}
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATcount}{DW\-\_AT\-\_count} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-
-\hline
-\livelink{chap:DWTAGstringtype}{DW\-\_TAG\-\_string\-\_type}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGsharedtype}{DW\_TAG\_shared\_type}
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATcount}{DW\_AT\_count} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+
+\hline
+\livelink{chap:DWTAGstringtype}{DW\_TAG\_string\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATstringlength}{DW\_AT\_string\_length} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \\
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATsignature}{DW\_AT\_signature} \\
+&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\
-&\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} \\
-&\livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATelemental}{DW\-\_AT\-\_elemental} \\
-&\livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc} \\
-&\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit} \\
-&\livelink{chap:DWATexternal}{DW\-\_AT\-\_external} \\
-&\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATinline}{DW\-\_AT\-\_inline} \\
-&\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer} \\
-&\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped} \\
-&\livelink{chap:DWATpure}{DW\-\_AT\-\_pure} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive} \\
-&\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link} \\
-&\livelink{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-&\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} \\
-&\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location} \\
-
-\hline
-\livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\
+&\livelink{chap:DWATartificial}{DW\_AT\_artificial} \\
+&\livelink{chap:DWATcallingconvention}{DW\_AT\_calling\_convention} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATelemental}{DW\_AT\_elemental} \\
+&\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc} \\
+&\livelink{chap:DWATexplicit}{DW\_AT\_explicit} \\
+&\livelink{chap:DWATexternal}{DW\_AT\_external} \\
+&\livelink{chap:DWATframebase}{DW\_AT\_frame\_base} \\
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
+&\livelink{chap:DWATinline}{DW\_AT\_inline} \\
+&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer} \\
+&\livelink{chap:DWATprototyped}{DW\_AT\_prototyped} \\
+&\livelink{chap:DWATpure}{DW\_AT\_pure} \\
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
+&\livelink{chap:DWATrecursive}{DW\_AT\_recursive} \\
+&\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATstaticlink}{DW\_AT\_static\_link} \\
+&\livelink{chap:DWATtrampoline}{DW\_AT\_trampoline} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+&\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality} \\
+&\livelink{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location} \\
+
+\hline
+\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride} \\
-&\livelink{chap:DWATcount}{DW\-\_AT\-\_count} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\*
-&\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound} \\*
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGsubroutinetype}{DW\-\_TAG\-\_subroutine\-\_type}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride} \\
+&\livelink{chap:DWATcount}{DW\_AT\_count} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\*
+&\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound} \\*
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGsubroutinetype}{DW\_TAG\_subroutine\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGtemplatealias}{DW\-\_TAG\-\_template\-\_alias}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATprototyped}{DW\_AT\_prototyped} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATsignature}{DW\_AT\_signature} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
&DECL \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
\hline
-\livelink{chap:DWTAGtemplatevalueparameter}{DW\-\_TAG\-\_template\-\_value\-\_parameter}
+\livelink{chap:DWTAGtemplatevalueparameter}{DW\_TAG\_template\_value\_parameter}
&DECL \\
-&\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
+&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
\hline
-\livelink{chap:DWTAGthrowntype}{DW\-\_TAG\-\_thrown\-\_type}
+\livelink{chap:DWTAGthrowntype}{DW\_TAG\_thrown\_type}
&DECL \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
\hline
-\livelink{chap:DWTAGtryblock}{DW\-\_TAG\-\_try\-\_block}
+\livelink{chap:DWTAGtryblock}{DW\_TAG\_try\_block}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGtypedef}{DW\-\_TAG\-\_typedef}
+\livelink{chap:DWTAGtypedef}{DW\_TAG\_typedef}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
\hline
-\livelink{chap:DWTAGtypeunit}{DW\-\_TAG\-\_type\-\_unit}
-&\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language} \\
+\livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit}
+&\livelink{chap:DWATlanguage}{DW\_AT\_language} \\
\hline
-\livelink{chap:DWTAGuniontype}{DW\-\_TAG\-\_union\-\_type}
+\livelink{chap:DWTAGuniontype}{DW\_TAG\_union\_type}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size} \\
-&\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \\
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size} \\
+&\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATsignature}{DW\_AT\_signature} \\
+&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGunspecifiedparameters}{DW\_TAG\_unspecified\_parameters}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATartificial}{DW\_AT\_artificial} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGunspecifiedtype}{DW\-\_TAG\-\_unspecified\-\_type}
+\livelink{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type}
&DECL \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
\hline
-\livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
+\livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} \\
-&\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdescription}{DW\-\_AT\-\_description} \\
-&\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} \\
-&\livelink{chap:DWATexternal}{DW\-\_AT\-\_external} \\
-&\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \\
-&\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\
-&\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
-
-\hline
-\livelink{chap:DWTAGvariant}{DW\-\_TAG\-\_variant}
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} \\
+&\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdescription}{DW\_AT\_description} \\
+&\livelink{chap:DWATendianity}{DW\_AT\_endianity} \\
+&\livelink{chap:DWATexternal}{DW\_AT\_external} \\
+&\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \\
+&\livelink{chap:DWATlocation}{DW\_AT\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATspecification}{DW\_AT\_specification} \\
+&\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\
+
+\hline
+\livelink{chap:DWTAGvariant}{DW\_TAG\_variant}
&DECL \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list} \\
-&\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list} \\
+&\livelink{chap:DWATdiscrvalue}{DW\_AT\_discr\_value} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
\hline
-\livelink{chap:DWTAGvariantpart}{DW\-\_TAG\-\_variant\-\_part}
+\livelink{chap:DWTAGvariantpart}{DW\_TAG\_variant\_part}
&DECL \\
-&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-
-\hline
-\livelink{chap:DWTAGvolatiletype}{DW\-\_TAG\-\_volatile\-\_type}
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
-&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
-&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
-&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-
-\hline
-\livelink{chap:DWTAGwithstmt}{DW\-\_TAG\-\_with\-\_stmt}
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\*
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\*
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\*
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\*
-&\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} \\*
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\*
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\*
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\*
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\*
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\*
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\*
+&\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin} \\
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\
+&\livelink{chap:DWATdiscr}{DW\_AT\_discr} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+
+\hline
+\livelink{chap:DWTAGvolatiletype}{DW\_TAG\_volatile\_type}
+&\livelink{chap:DWATallocated}{DW\_AT\_allocated} \\
+&\livelink{chap:DWATassociated}{DW\_AT\_associated} \\
+&\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} \\
+&\livelink{chap:DWATname}{DW\_AT\_name} \\
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\
+
+\hline
+\livelink{chap:DWTAGwithstmt}{DW\_TAG\_with\_stmt}
+&\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \\*
+&\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class} \\*
+&\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} \\*
+&\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \\*
+&\livelink{chap:DWATlocation}{DW\_AT\_location} \\*
+&\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \\*
+&\livelink{chap:DWATranges}{DW\_AT\_ranges} \\*
+&\livelink{chap:DWATsegment}{DW\_AT\_segment} \\*
+&\livelink{chap:DWATsibling}{DW\_AT\_sibling} \\*
+&\livelink{chap:DWATtype}{DW\_AT\_type} \\*
+&\livelink{chap:DWATvisibility}{DW\_AT\_visibility} \\*
\end{longtable}
\item A means of referencing from inside one \addtoindex{.debug\_info}
compilation unit to another
\addtoindex{.debug\_info} compilation unit
-(\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} provides this).
+(\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} provides this).
\item A means of having multiple contributions to specific sections
(for example, \addtoindex{.debug\_info}, and so on) in a single object file.
(This is a consequence of separate compilation, not a rule
imposed by this document.)
-\textit{Local labels use references with form \livelink{chap:DWFORMref4}{DW\-\_FORM\-\_ref4}
+\textit{Local labels use references with form \livelink{chap:DWFORMref4}{DW\_FORM\_ref4}
or
-\livelink{chap:DWFORMref8}{DW\-\_FORM\-\_ref8}.
+\livelink{chap:DWFORMref8}{DW\_FORM\_ref8}.
(These are affected by relocations
so
-\livelink{chap:DWFORMrefudata}{DW\-\_FORM\-\_ref\-\_udata},
-\livelink{chap:DWFORMref1}{DW\-\_FORM\-\_ref1} and
-\livelink{chap:DWFORMref2}{DW\-\_FORM\-\_ref2} are
+\livelink{chap:DWFORMrefudata}{DW\_FORM\_ref\_udata},
+\livelink{chap:DWFORMref1}{DW\_FORM\_ref1} and
+\livelink{chap:DWFORMref2}{DW\_FORM\_ref2} are
normally not usable and
-\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} is not necessary
+\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} is not necessary
for a local label.)}
-\subsubsection{Use of DW\-\_TAG\-\_compile\-\_unit versus
-DW\-\_TAG\-\_partial\-\_unit}
+\subsubsection{Use of DW\_TAG\_compile\_unit versus
+DW\_TAG\_partial\_unit}
A \addtoindex{section group} compilation unit that uses
-\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
+\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
is like any other compilation unit, in that its contents
are evaluated by consumers as though it were an ordinary
compilation unit.
An \#include directive appearing outside any other
declarations is a good candidate to be represented using
-\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}.
+\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}.
However, an \#include appearing inside
a \addtoindex{C++} namespace declaration or a function, for example, is
not a good candidate because the entities included are not
This also applies to \addtoindex{Fortran} INCLUDE lines when declarations
are included into a procedure or module context.
-Consequently a compiler must use \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} (instead
-of \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit})
+Consequently a compiler must use \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} (instead
+of \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit})
in a \addtoindex{section group}
whenever the section group
contents are not necessarily globally visible.
directs consumers to ignore that compilation unit when scanning
top level declarations and definitions.
-The \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} compilation unit will be referenced
+The \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} compilation unit will be referenced
from elsewhere and the referencing locations give the
appropriate context for interpreting the partial compilation
unit.
-A \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} entry may have, as appropriate, any of
-the attributes assigned to a \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}.
+A \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} entry may have, as appropriate, any of
+the attributes assigned to a \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}.
-\subsubsection{Use of DW\-\_TAG\-\_imported\-\_unit}
+\subsubsection{Use of DW\_TAG\_imported\_unit}
-A \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit} debugging information entry has an
-\livelink{chap:DWATimport}{DW\-\_AT\-\_import} attribute referencing a \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit} or
-\livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} debugging information entry.
+A \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit} debugging information entry has an
+\livelink{chap:DWATimport}{DW\_AT\_import} attribute referencing a \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or
+\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} debugging information entry.
-A \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit} debugging information entry refers
+A \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit} debugging information entry refers
to a
-\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit} or
-\livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} debugging
+\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or
+\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} debugging
information entry to specify that the
-\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit} or
-\livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} contents logically appear at the point
+\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} or
+\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} contents logically appear at the point
of the
-\livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit} entry.
+\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit} entry.
-\subsubsection{Use of DW\-\_FORM\-\_ref\-\_addr}
+\subsubsection{Use of DW\_FORM\_ref\_addr}
Use
-\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} to reference from one compilation
+\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} to reference from one compilation
unit's debugging information entries to those of another
compilation unit.
non-section group
\addtoindex{.debug\_info},
from another \addtoindex{.debug\_info} (from anywhere)
-\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} is
+\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} is
still the form to be used, but a section\dash relative relocation
generated by use of a non-exported name (often called an
``internal name'') may be used for references within the
my.compiler.company.cpp.wa.h.123456
== section \addtoindex{.debug\_info}
DW.cpp.wa.h.123456.1: ! linker global symbol
- \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
- \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}(\livelink{chap:DWLANGCplusplus}{DW\-\_LANG\-\_C\-\_plus\-\_plus})
+ \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+ \livelink{chap:DWATlanguage}{DW\_AT\_language}(\livelink{chap:DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus})
... ! other unit attributes
DW.cpp.wa.h.123456.2: ! linker global symbol
- \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("int")
+ \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("int")
DW.cpp.wa.h.123456.3: ! linker global symbol
- \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("A")
+ \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("A")
DW.cpp.wa.h.123456.4: ! linker global symbol
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("i")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(\livelink{chap:DWFORMrefn}{DW\-\_FORM\-\_refn} to DW.cpp.wa.h.123456.2)
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("i")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(\livelink{chap:DWFORMrefn}{DW\_FORM\_refn} to DW.cpp.wa.h.123456.2)
! (This is a local reference, so the more
- ! compact form \livetarg{chap:DWFORMrefn}{DW\-\_FORM\-\_refn}
+ ! compact form \livetarg{chap:DWFORMrefn}{DW\_FORM\_refn}
! for n 1,2,4, or 8 can be used)
\end{alltt}
\end{dwflisting}
== section .text
[generated code for function f]
== section \addtoindex{.debug\_info}
- \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
+ \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
.L1: ! local (non-linker) symbol
- \livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to DW.cpp.wa.h.123456.3)
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("f")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to DW.cpp.wa.h.123456.2)
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("a")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to .L1)
+ \livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.cpp.wa.h.123456.3)
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("f")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.cpp.wa.h.123456.2)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("a")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to .L1)
...
\end{alltt}
\end{dwflisting}
\label{fig:duplicateeliminationexample1primarycompilationunit}
\end{figure}
-This example uses \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit} for the \addtoindex{section group},
+This example uses \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit} for the \addtoindex{section group},
implying that the contents of the compilation unit are
globally visible (in accordance with
\addtoindex{C++} language rules).
-\livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} is not needed for the same reason.
+\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} is not needed for the same reason.
\subsubsection{Fortran Example}
== section \addtoindex{.debug\_info}
DW.myf90.CommonStuff.fh.654321.1: ! linker global symbol
- \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit}
+ \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit}
! ...compilation unit attributes, including...
- \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}(\livelink{chap:DWLANGFortran90}{DW\-\_LANG\-\_Fortran90})
- \livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}(\livelink{chap:DWIDcaseinsensitive}{DW\-\_ID\-\_case\-\_insensitive})
+ \livelink{chap:DWATlanguage}{DW\_AT\_language}(\livelink{chap:DWLANGFortran90}{DW\_LANG\_Fortran90})
+ \livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}(\livelink{chap:DWIDcaseinsensitive}{DW\_ID\_case\_insensitive})
DW.myf90.CommonStuff.fh.654321.2: ! linker global symbol
-3\$: \livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type}
+3\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
! unnamed
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to DW.f90.F90\$main.f.2)
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
! base type INTEGER
- \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to DW.f90.F90\$main.f.2)
+ \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
! base type INTEGER)
- \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}(constant 1)
- \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}(constant 100)
+ \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(constant 1)
+ \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(constant 100)
DW.myf90.CommonStuff.fh.654321.3: ! linker global symbol
- \livelink{chap:DWTAGcommonblock}{DW\-\_TAG\-\_common\-\_block}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Common1")
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(Address of common \nolink{block} Common1)
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("C")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 3\$)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(address of C)
+ \livelink{chap:DWTAGcommonblock}{DW\_TAG\_common\_block}
+ \livelink{chap:DWATname}{DW\_AT\_name}("Common1")
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(Address of common \nolink{block} Common1)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("C")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(address of C)
DW.myf90.CommonStuff.fh.654321.4: ! linker global symbol
- \livelink{chap:DWTAGconstant}{DW\-\_TAG\-\_constant}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("SEVEN")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to DW.f90.F90\$main.f.2)
+ \livelink{chap:DWTAGconstant}{DW\_TAG\_constant}
+ \livelink{chap:DWATname}{DW\_AT\_name}("SEVEN")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
! base type INTEGER
- \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}(constant 7)
+ \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(constant 7)
\end{alltt}
\end{dwflisting}
\caption{Duplicate elimination example \#2: DWARF section group}
[code for function Foo]
== section \addtoindex{.debug\_info}
- \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Foo")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to DW.f90.F90\$main.f.2)
+ \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("Foo")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
! base type INTEGER
- \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to
+ \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to
DW.myf90.CommonStuff.fh.654321.1)
- \livelink{chap:DWTAGcommoninclusion}{DW\-\_TAG\-\_common\-\_inclusion} ! For Common1
- \livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference}(reference to
+ \livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion} ! For Common1
+ \livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference}(reference to
DW.myf90.CommonStuff.fh.654321.3)
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable} ! For function result
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Foo")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to DW.f90.F90\$main.f.2)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable} ! For function result
+ \livelink{chap:DWATname}{DW\_AT\_name}("Foo")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to DW.f90.F90\$main.f.2)
! base type INTEGER
\end{alltt}
\end{dwflisting}
\begin{dwflisting}
\begin{alltt}
== section \addtoindex{.debug\_info}
- \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}(F90\$main)
- \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INTEGER")
- \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}(\livelink{chap:DWATEsigned}{DW\-\_ATE\-\_signed})
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}(...)
-
- \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
+ \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+ \livelink{chap:DWATname}{DW\_AT\_name}(F90\$main)
+ \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INTEGER")
+ \livelink{chap:DWATencoding}{DW\_AT\_encoding}(\livelink{chap:DWATEsigned}{DW\_ATE\_signed})
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(...)
+
+ \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
...
... ! other base types
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("F90\$main")
- \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("F90\$main")
+ \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to
DW.myf90.CommonStuff.fh.654321.1)
- \livelink{chap:DWTAGcommoninclusion}{DW\-\_TAG\-\_common\-\_inclusion} ! for Common1
- \livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference}(reference to
+ \livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion} ! for Common1
+ \livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference}(reference to
DW.myf90.CommonStuff.fh.654321.3)
...
\end{alltt}
\label{fig:duplicateeliminationexample2companiondwarf}
\end{figure}
-This example uses \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} for the \addtoindex{section group}
+This example uses \livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit} for the \addtoindex{section group}
because the included declarations are not independently
visible as global entities.
\addtoindexx{DWARF duplicate elimination!C example}
in this Section might appear to be equally
valid as a \addtoindex{C} example. However, it is prudent to include
-a \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}
+a \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}
in the primary unit
(see Figure \refersec{fig:duplicateeliminationexample1primarycompilationunit})
-with an \livelink{chap:DWATimport}{DW\-\_AT\-\_import} attribute that refers to the proper unit
+with an \livelink{chap:DWATimport}{DW\_AT\_import} attribute that refers to the proper unit
in the \addtoindex{section group}.
\textit{The \addtoindex{C} rules for consistency of global (file scope) symbols
% We keep the : (colon) away from the attribute so tokenizing in the python tools
% does not result in adding : into the attribute name.
\begin{alltt}
- \livelink{chap:DWTAGtypeunit}{DW\-\_TAG\-\_type\-\_unit}
- \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language} : \livelink{chap:DWLANGCplusplus}{DW\-\_LANG\-\_C\-\_plus\-\_plus} (4)
- \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "N"
+ \livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit}
+ \livelink{chap:DWATlanguage}{DW\_AT\_language} : \livelink{chap:DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus} (4)
+ \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "N"
L1:
- \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "C"
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} : 8
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 5
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "x"
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 6
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L2
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} : 0
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "y"
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 7
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L2
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} : 4
+ \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "C"
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} : 8
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 5
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "x"
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 6
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 0
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "y"
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 7
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 4
L2:
- \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} : 4
- \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding} : \livelink{chap:DWATEsigned}{DW\-\_ATE\-\_signed}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "int"
+ \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} : 4
+ \livelink{chap:DWATencoding}{DW\_AT\_encoding} : \livelink{chap:DWATEsigned}{DW\_ATE\_signed}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "int"
\end{alltt}
\end{dwflisting}
\caption{Type signature computation \#1: DWARF representation}
\begin{figure}
\begin{dwflisting}
\begin{alltt}
-// Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace} "N"
+// Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N"
0x43 0x39 0x4e 0x00
-// Step 3: 'D' \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
+// Step 3: 'D' \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
0x44 0x13
-// Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "C"
+// Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "C"
0x41 0x03 0x08 0x43 0x00
-// Step 4: 'A' \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 8
+// Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 8
0x41 0x0b 0x0d 0x08
// Step 7: First child ("x")
- // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+ // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
0x44 0x0d
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "x"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "x"
0x41 0x03 0x08 0x78 0x00
- // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 0
+ // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 0
0x41 0x38 0x0d 0x00
- // Step 6: 'T' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#2)
+ // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
0x54 0x49
- // Step 3: 'D' \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
+ // Step 3: 'D' \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
0x44 0x24
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "int"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "int"
0x41 0x03 0x08 0x69 0x6e 0x74 0x00
- // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 4
+ // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
0x41 0x0b 0x0d 0x04
- // Step 4: 'A' \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \livelink{chap:DWATEsigned}{DW\-\_ATE\-\_signed}
+ // Step 4: 'A' \livelink{chap:DWATencoding}{DW\_AT\_encoding} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWATEsigned}{DW\_ATE\_signed}
0x41 0x3e 0x0d 0x05
- // Step 7: End of \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type} "int"
+ // Step 7: End of \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type} "int"
0x00
- // Step 7: End of \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} "x"
+ // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "x"
0x00
// Step 7: Second child ("y")
- // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+ // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
0x44 0x0d
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "y"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "y"
0x41 0x03 0x08 0x78 0x00
- // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 4
+ // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
0x41 0x38 0x0d 0x04
- // Step 6: 'R' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#2)
+ // Step 6: 'R' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
0x52 0x49 0x02
- // Step 7: End of \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} "y"
+ // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "y"
0x00
-// Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type} "C"
+// Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type} "C"
0x00
\end{alltt}
\end{dwflisting}
\figurepart{1}{2}
\begin{dwflisting}
\begin{alltt}
- \livelink{chap:DWTAGtypeunit}{DW\-\_TAG\-\_type\-\_unit}
- \livelink{chap:DWATlanguage}{DW\-\_AT\-\_language} : \livelink{chap:DWLANGCplusplus}{DW\-\_LANG\-\_C\-\_plus\-\_plus} (4)
- \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "N"
+ \livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit}
+ \livelink{chap:DWATlanguage}{DW\_AT\_language} : \livelink{chap:DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus} (4)
+ \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "N"
L1:
- \livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "A"
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} : 20
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 10
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "v\_"
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 15
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L2
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} : 0
- \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "next"
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 16
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L3
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} : 4
- \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "bp"
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 17
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L4
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} : 8
- \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "c"
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 18
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : 0xd28081e8 dcf5070a (signature for struct C)
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} : 12
- \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}
+ \livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "A"
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} : 20
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 10
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "v\_"
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 15
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 0
+ \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "next"
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 16
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L3
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 4
+ \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "bp"
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 17
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L4
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 8
+ \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "c"
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 18
+ \livelink{chap:DWATtype}{DW\_AT\_type} : 0xd28081e8 dcf5070a (signature for struct C)
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} : 12
+ \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} : \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
\end{alltt}
\end{dwflisting}
\caption{Type signature computation \#2: DWARF representation}
\figurepart{2}{2}
\begin{dwflisting}
\begin{alltt}
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} : 1
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "A"
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 12
- \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} : 1
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L3
- \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} : 1
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L2
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} : 1
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "v"
- \livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file} : 1
- \livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line} : 13
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L2
- \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} : 1
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L3
- \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial} : 1
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATexternal}{DW\_AT\_external} : 1
+ \livelink{chap:DWATname}{DW\_AT\_name} : "A"
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 12
+ \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} : 1
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L3
+ \livelink{chap:DWATartificial}{DW\_AT\_artificial} : 1
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATexternal}{DW\_AT\_external} : 1
+ \livelink{chap:DWATname}{DW\_AT\_name} : "v"
+ \livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file} : 1
+ \livelink{chap:DWATdeclline}{DW\_AT\_decl\_line} : 13
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L2
+ \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} : 1
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L3
+ \livelink{chap:DWATartificial}{DW\_AT\_artificial} : 1
L2:
- \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} : 4
- \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding} : \livelink{chap:DWATEsigned}{DW\-\_ATE\-\_signed}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "int"
+ \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} : 4
+ \livelink{chap:DWATencoding}{DW\_AT\_encoding} : \livelink{chap:DWATEsigned}{DW\_ATE\_signed}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "int"
L3:
- \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L1
+ \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L1
L4:
- \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : reference to L5
- \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "N"
+ \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type} : reference to L5
+ \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "N"
L5:
- \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "B"
- \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} : 1
+ \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "B"
+ \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} : 1
\end{alltt}
\end{dwflisting}
\begin{center}
a declaration, since the complete type is unknown and its
signature is therefore unavailable. There is also a reference
to N::C, using
-\livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8} to
+\livelink{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8} to
refer to the type signature
\addtoindexx{type signature}
for that type.
\begin{figure}
\figurepart{1}{3}
\begin{dwflisting}
-% DWARF4 had a \livelink{chap:DWATnamespace}{DW_AT_namespace} below,
-% but this error is fixed here to be \livelink{chap:DWTAGnamespace}{DW_TAG_namespace}.
+% DWARF4 had a \livelink{chap:DWATnamespace}{DW\_AT\_namespace} below,
+% but this error is fixed here to be \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}.
\begin{alltt}
-// Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace} "N"
+// Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N"
0x43 0x39 0x4e 0x00
-// Step 3: 'D' \livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type}
+// Step 3: 'D' \livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}
0x44 0x02
-// Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "A"
+// Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "A"
0x41 0x03 0x08 0x41 0x00
-// Step 4: 'A' \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 20
+// Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 20
0x41 0x0b 0x0d 0x14
// Step 7: First child ("v\_")
- // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+ // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
0x44 0x0d
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "v\_"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "v\_"
0x41 0x03 0x08 0x76 0x5f 0x00
- // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}
+ // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
0x41 0x32 0x0d 0x03
- // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 0
+ // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 0
0x41 0x38 0x0d 0x00
- // Step 6: 'T' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#2)
+ // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
0x54 0x49
- // Step 3: 'D' \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
+ // Step 3: 'D' \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
0x44 0x24
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "int"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "int"
0x41 0x03 0x08 0x69 0x6e 0x74 0x00
- // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 4
+ // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
0x41 0x0b 0x0d 0x04
- // Step 4: 'A' \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \livelink{chap:DWATEsigned}{DW\-\_ATE\-\_signed}
+ // Step 4: 'A' \livelink{chap:DWATencoding}{DW\_AT\_encoding} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWATEsigned}{DW\_ATE\_signed}
0x41 0x3e 0x0d 0x05
- // Step 7: End of \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type} "int"
+ // Step 7: End of \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type} "int"
0x00
- // Step 7: End of \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} "v\_"
+ // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "v\_"
0x00
// Step 7: Second child ("next")
- // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+ // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
0x44 0x0d
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "next"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "next"
0x41 0x03 0x08 0x6e 0x65 0x78 0x74 0x00
- // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}
+ // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
0x41 0x32 0x0d 0x03
- // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 4
+ // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
0x41 0x38 0x0d 0x04
\end{alltt}
\end{dwflisting}
\figurepart{2}{3}
\begin{dwflisting}
\begin{alltt}
- // Step 6: 'T' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#3)
+ // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#3)
0x54 0x49
- // Step 3: 'D' \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
+ // Step 3: 'D' \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
0x44 0x0f
- // Step 5: 'N' \livelink{chap:DWATtype}{DW\-\_AT\-\_type}
+ // Step 5: 'N' \livelink{chap:DWATtype}{DW\_AT\_type}
0x4e 0x49
- // Step 5: 'C' \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace} "N" 'E'
+ // Step 5: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N" 'E'
0x43 0x39 0x4e 0x00 0x45
// Step 5: "A"
0x41 0x00
- // Step 7: End of \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
+ // Step 7: End of \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
0x00
- // Step 7: End of \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} "next"
+ // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "next"
0x00
// Step 7: Third child ("bp")
- // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+ // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
0x44 0x0d
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "bp"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "bp"
0x41 0x03 0x08 0x62 0x70 0x00
- // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}
+ // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
0x41 0x32 0x0d 0x03
- // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 8
+ // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 8
0x41 0x38 0x0d 0x08
- // Step 6: 'T' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#4)
+ // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#4)
0x54 0x49
- // Step 3: 'D' \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
+ // Step 3: 'D' \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
0x44 0x0f
- // Step 5: 'N' \livelink{chap:DWATtype}{DW\-\_AT\-\_type}
+ // Step 5: 'N' \livelink{chap:DWATtype}{DW\_AT\_type}
0x4e 0x49
- // Step 5: 'C' \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace} "N" 'E'
+ // Step 5: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N" 'E'
0x43 0x39 0x4e 0x00 0x45
// Step 5: "B"
0x42 0x00
- // Step 7: End of \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
+ // Step 7: End of \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
0x00
- // Step 7: End of \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} "next"
+ // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "next"
0x00
// Step 7: Fourth child ("c")
- // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+ // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
0x44 0x0d
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "c"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "c"
0x41 0x03 0x08 0x63 0x00
- // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}
+ // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\_AT\_accessibility} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}
0x41 0x32 0x0d 0x03
\end{alltt}
\end{dwflisting}
\figurepart{3}{3}
\begin{dwflisting}
\begin{alltt}
- // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 12
+ // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 12
0x41 0x38 0x0d 0x0c
- // Step 6: 'T' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#5)
+ // Step 6: 'T' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#5)
0x54 0x49
- // Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace} "N"
+ // Step 2: 'C' \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace} "N"
0x43 0x39 0x4e 0x00
- // Step 3: 'D' \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
+ // Step 3: 'D' \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
0x44 0x13
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "C"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "C"
0x41 0x03 0x08 0x43 0x00
- // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 8
+ // Step 4: 'A' \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 8
0x41 0x0b 0x0d 0x08
// Step 7: First child ("x")
- // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+ // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
0x44 0x0d
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "x"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "x"
0x41 0x03 0x08 0x78 0x00
- // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 0
+ // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 0
0x41 0x38 0x0d 0x00
- // Step 6: 'R' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#2)
+ // Step 6: 'R' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
0x52 0x49 0x02
- // Step 7: End of \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} "x"
+ // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "x"
0x00
// Step 7: Second child ("y")
- // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
+ // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\_TAG\_member}
0x44 0x0d
- // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} "y"
+ // Step 4: 'A' \livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string} "y"
0x41 0x03 0x08 0x79 0x00
- // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} 4
+ // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} 4
0x41 0x38 0x0d 0x04
- // Step 6: 'R' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#2)
+ // Step 6: 'R' \livelink{chap:DWATtype}{DW\_AT\_type} (type \#2)
0x52 0x49 0x02
- // Step 7: End of \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} "y"
+ // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "y"
0x00
- // Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type} "C"
+ // Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type} "C"
0x00
- // Step 7: End of \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} "c"
+ // Step 7: End of \livelink{chap:DWTAGmember}{DW\_TAG\_member} "c"
0x00
// Step 7: Fifth child ("A")
- // Step 3: 'S' \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram} "A"
+ // Step 3: 'S' \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram} "A"
0x53 0x2e 0x41 0x00
// Step 7: Sixth child ("v")
- // Step 3: 'S' \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram} "v"
+ // Step 3: 'S' \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram} "v"
0x53 0x2e 0x76 0x00
-// Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type} "A"
+// Step 7: End of \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type} "A"
0x00
\end{alltt}
\end{dwflisting}
\begin{figure}
\begin{dwflisting}
\begin{alltt}
- \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
+ \livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
...
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
...
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name} : "a"
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type} : (signature) 0xd6d160f5 5589f6e9
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} : ...
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name} : "a"
+ \livelink{chap:DWATtype}{DW\_AT\_type} : (signature) 0xd6d160f5 5589f6e9
+ \livelink{chap:DWATlocation}{DW\_AT\_location} : ...
...
\end{alltt}
\end{dwflisting}
at-code
: <ULEB128>
form-encoded-value
- : \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} value \addtoindexx{constant class}
- : \livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} value \addtoindexx{flag class}
- : \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} string \addtoindexx{string class}
- : \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} \nolink{block} \addtoindexx{block class}
-\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} \addtoindexx{string class}
+ : \livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} value \addtoindexx{constant class}
+ : \livelink{chap:DWFORMflag}{DW\_FORM\_flag} value \addtoindexx{flag class}
+ : \livelink{chap:DWFORMstring}{DW\_FORM\_string} string \addtoindexx{string class}
+ : \livelink{chap:DWFORMblock}{DW\_FORM\_block} \nolink{block} \addtoindexx{block class}
+\livelink{chap:DWFORMstring}{DW\_FORM\_string} \addtoindexx{string class}
: 'x08'
-\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} \addtoindexx{block class}
+\livelink{chap:DWFORMblock}{DW\_FORM\_block} \addtoindexx{block class}
: 'x09'
-\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} \addtoindexx{flag class}
+\livelink{chap:DWFORMflag}{DW\_FORM\_flag} \addtoindexx{flag class}
: 'x0c'
-\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \addtoindexx{constant class}
+\livelink{chap:DWFORMsdata}{DW\_FORM\_sdata} \addtoindexx{constant class}
: 'x0d'
value
: <SLEB128>
declarations and definitions. Other per\dash function compilation
unit DWARF information (
\addtoindex{.debug\_info}) points to this common
-file\dash level compilation unit using \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}.
+file\dash level compilation unit using \livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit}.
-Section groups can use \livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} and internal labels
+Section groups can use \livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} and internal labels
(section\dash relative relocations) to refer to the main object
file sections, as the
\addtoindexx{section group}
\addtoindexx{formal parameter entry}
formal parameters and constants are
represented by debugging information entries with the tags
-\livetarg{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}\addtoindexx{variable entry},
-\livetarg{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}\addtoindexx{formal parameter entry} and
-\livetarg{chap:DWTAGconstant}{DW\-\_TAG\-\_constant}\addtoindexx{constant (data) entry},
+\livetarg{chap:DWTAGvariable}{DW\_TAG\_variable}\addtoindexx{variable entry},
+\livetarg{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}\addtoindexx{formal parameter entry} and
+\livetarg{chap:DWTAGconstant}{DW\_TAG\_constant}\addtoindexx{constant (data) entry},
respectively.
-\textit{The tag \livelink{chap:DWTAGconstant}{DW\-\_TAG\-\_constant} is used for languages that
+\textit{The tag \livelink{chap:DWTAGconstant}{DW\_TAG\_constant} is used for languages that
have true named constants.}
The debugging information entry for a program variable,
formal parameter or constant may have the following attributes:
\begin{enumerate}[1. ]
-\item A \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute,
+\item A \livelink{chap:DWATname}{DW\_AT\_name} attribute,
\addtoindexx{name attribute}
whose value is a null-terminated
string, containing the data object name as it appears in the
the name attribute is omitted or consists of a single
zero byte.
-\item A \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} attribute,
+\item A \livelink{chap:DWATexternal}{DW\_AT\_external} attribute,
\hypertarget{chap:DWATexternalexternalvariable}
which
\addtoindexx{external attribute}
are represented by non-external variable entries.
}
-\item A \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute,
+\item A \livelink{chap:DWATdeclaration}{DW\_AT\_declaration} attribute,
\addtoindexx{declaration attribute}
which is a \livelink{chap:flag}{flag} that
indicates whether this entry represents a non-defining
declaration of an object.
-\item A \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} attribute,
+\item A \livelink{chap:DWATlocation}{DW\_AT\_location} attribute,
\addtoindexx{location attribute}
whose value describes the location of a variable or parameter at run-time.
entry representing the definition of a variable (that is,
\addtoindexx{declaration attribute}
with no
-\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} attribute),
+\livelink{chap:DWATdeclaration}{DW\_AT\_declaration} attribute),
or if the location attribute is present but has
an empty location description (as described in Section \refersec{chap:locationdescriptions}),
\addtoindexx{unallocated variable}
The location of a variable may be further specified with
\addtoindexx{segment attribute!and data segment}
a
-\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} attribute, if
+\livelink{chap:DWATsegment}{DW\_AT\_segment} attribute, if
appropriate.
-\item A \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute describing the type of the variable,
+\item A \livelink{chap:DWATtype}{DW\_AT\_type} attribute describing the type of the variable,
constant or formal parameter.
\item If the variable entry represents the defining declaration
for a C++ static data member of a structure, class or union,
-the entry has a \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute, whose value is a
+the entry has a \livelink{chap:DWATspecification}{DW\_AT\_specification} attribute, whose value is a
reference to the debugging information entry representing the
declaration of this data member. The referenced entry has the
-tag \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member} and will be a child of some class, structure
+tag \livelink{chap:DWTAGmember}{DW\_TAG\_member} and will be a child of some class, structure
or union type entry.
If the variable entry represents a
-non-defining declaration, \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} may be used
+non-defining declaration, \livelink{chap:DWATspecification}{DW\_AT\_specification} may be used
to reference the defining declaration of the variable. If
-no \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute is present, the defining
+no \livelink{chap:DWATspecification}{DW\_AT\_specification} attribute is present, the defining
declaration may be found as a global definition either in the
current compilation unit or in another compilation unit with
-the \livelink{chap:DWATexternal}{DW\-\_AT\-\_external} attribute.
+the \livelink{chap:DWATexternal}{DW\_AT\_external} attribute.
Variable entries containing
-the \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} attribute do not need to duplicate
+the \livelink{chap:DWATspecification}{DW\_AT\_specification} attribute do not need to duplicate
information provided by the declaration entry referenced by
the specification attribute. In particular, such variable
entries do not need to contain attributes for the name or
\hypertarget{chap:DWATvariableparameternonconstantparameterflag}
represent.
-\item A \livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}
+\item A \livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter}
attribute\addtoindexx{variable parameter attribute},
which is a \livelink{chap:flag}{flag},
if a formal parameter entry represents a parameter whose
The absence of this attribute implies that the parameter’s
value in the calling function cannot be modified by the callee.
-\item A \livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional} attribute,
+\item A \livelink{chap:DWATisoptional}{DW\_AT\_is\_optional} attribute,
\hypertarget{chap:DWATisoptionaloptionalparameter}
which
\addtoindexx{is optional attribute}
is a \livelink{chap:flag}{flag}, if a
parameter entry represents an \addtoindex{optional parameter}.
-\item A \livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value} attribute
+\item A \livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value} attribute
\addtoindexx{default value attribute}
for
\addtoindexx{formal parameter entry!with default value}
\textit{For a constant form there is no way to
express the absence of a default value.}
-\item A \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value} attribute
+\item A \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value} attribute
for
\hypertarget{chap:DWATconstvalueconstantobject}
an entry describing a
to a constant actual parameter of a call that is inlined.
}
-\item A \livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope}
+\item A \livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}
attribute if the scope of
\addtoindexx{start scope attribute}
an
an object may not require its own \addtoindex{range list} even when the
containing scope is non\dash contiguous.}
-\item A \livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} attribute,
+\item A \livelink{chap:DWATendianity}{DW\_AT\_endianity} attribute,
whose value
\hypertarget{chap:DWATendianityendianityofdata}
is a constant
\begin{tabular}{l|p{9cm}}
\hline
Name&Meaning\\ \hline
-\livetarg{chap:DWENDdefault}{DW\-\_END\-\_default} & Default endian encoding
+\livetarg{chap:DWENDdefault}{DW\_END\_default} & Default endian encoding
(equivalent to the \mbox{absence} of a
- \livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} attribute) \\
-\livetarg{chap:DWENDbig}{DW\-\_END\-\_big} & Big\dash endian encoding \\
-\livetarg{chap:DWENDlittle}{DW\-\_END\-\_little}& Little-endian encoding \\
+ \livelink{chap:DWATendianity}{DW\_AT\_endianity} attribute) \\
+\livetarg{chap:DWENDbig}{DW\_END\_big} & Big\dash endian encoding \\
+\livetarg{chap:DWENDlittle}{DW\_END\_little}& Little-endian encoding \\
\hline
\end{tabular}
\end{table}
for different architectures.
-\item A \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} attribute,
+\item A \livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} attribute,
which
\hypertarget{chap:DWATconstexprcompiletimeconstantobject}
is a \livelink{chap:flag}{flag}, if a
\textit{In C++,
a variable declared with constexpr is implicitly const. Such a
-variable has a \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute whose value is a reference
+variable has a \livelink{chap:DWATtype}{DW\_AT\_type} attribute whose value is a reference
to a debugging information entry describing a const qualified type.}
-\item A \livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} attribute for a
+\item A \livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} attribute for a
variable or constant entry as described in
Section \refersec{chap:linkagenames}.
\addtoindexx{Fortran!common block}
be described by a debugging
information entry with the
-tag \livetarg{chap:DWTAGcommonblock}{DW\-\_TAG\-\_common\-\_block}.
+tag \livetarg{chap:DWTAGcommonblock}{DW\_TAG\_common\_block}.
The common \nolink{block}
-entry has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute
+entry has a \livelink{chap:DWATname}{DW\_AT\_name} attribute
\addtoindexx{name attribute}
whose value
is a null-terminated string containing the
\livetargi{chap:commonblockreferenceattribute}{common}{common block reference attribute} \nolink{block}
name as it appears in the source program. It may also have a
-\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} attribute as described in
+\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} attribute as described in
Section \refersec{chap:linkagenames}.
It
-also has a \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} attribute
+also has a \livelink{chap:DWATlocation}{DW\_AT\_location} attribute
\addtoindexx{location attribute}
whose value describes the
location of the beginning of the common \nolink{block}.
A namelist is represented by a debugging information entry
with the
-tag \livetarg{chap:DWTAGnamelist}{DW\-\_TAG\-\_namelist}.
+tag \livetarg{chap:DWTAGnamelist}{DW\_TAG\_namelist}.
\addtoindexx{namelist entry}
If the namelist itself has a
-name, the namelist entry has a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute,
+name, the namelist entry has a \livelink{chap:DWATname}{DW\_AT\_name} attribute,
\addtoindexx{name attribute}
whose
value is a null-terminated string containing the namelist’s
\hypertarget{chap:DWATnamelistitemnamelistitem}
name that is part of the namelist is represented
by a debugging information entry with the tag
-\livetarg{chap:DWTAGnamelistitem}{DW\-\_TAG\-\_namelist\-\_item}.
+\livetarg{chap:DWTAGnamelistitem}{DW\_TAG\_namelist\_item}.
Each such entry is a child of the
namelist entry, and all of the
namelist item entries for a
correspond to in the source program.
Each namelist item entry contains a
-\livelink{chap:DWATnamelistitem}{DW\-\_AT\-\_namelist\-\_item} attribute
+\livelink{chap:DWATnamelistitem}{DW\_AT\_namelist\_item} attribute
\addtoindexx{namelist item attribute}
whose
\addtoindexx{namelist item entry}
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 \textit{prefix}\_lo\_user and \textit{prefix}\_hi\_user inclusive,
are reserved for vendor specific extensions. Vendors may
the first special line number opcode. However, since the
number of standard opcodes varies with the DWARF version,
the range for extensions is also version dependent. Thus,
-\livetarg{chap:DWLNSlouser}{DW\-\_LNS\-\_lo\-\_user} and
-\livetarg{chap:DWLNShiuser}{DW\-\_LNS\-\_hi\-\_user} symbols are not defined.
+\livetarg{chap:DWLNSlouser}{DW\_LNS\_lo\_user} and
+\livetarg{chap:DWLNShiuser}{DW\_LNS\_hi\_user} symbols are not defined.
}
Vendor defined tags, attributes, base type encodings, location
\begin{center}
\begin{tabular}{ll}
Form & Role \\ \hline
-\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}& offset in \addtoindex{.debug\_info} \\
-\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}& offset in a section other than \\
+\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr}& offset in \addtoindex{.debug\_info} \\
+\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}& offset in a section other than \\
&\addtoindex{.debug\_info} or \addtoindex{.debug\_str} \\
-\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}&offset in \addtoindex{.debug\_str} \\
-\livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref}&offset in \addtoindex{.debug\_info} \\
+\livelink{chap:DWFORMstrp}{DW\_FORM\_strp}&offset in \addtoindex{.debug\_str} \\
+\livelink{chap:DWOPcallref}{DW\_OP\_call\_ref}&offset in \addtoindex{.debug\_info} \\
\end{tabular}
\end{center}
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
such contribution consists of a
\addtoindex{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
unit.
\textit{An attribute that refers (using
-\livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8}) to
+\livelink{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8}) to
the primary type contained in this
\addtoindex{type unit} uses this value.}
\hline
\ddag \ \textit{New in \addtoindex{DWARF Version 4}}
\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}&\xiiif \\
-\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}&\xffff \\
+\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}&\xiiif \\
+\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}&\xffff \\
\end{longtable}
\end{centering}
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
-\livetarg{chap:DWCHILDRENyes}{DW\-\_CHILDREN\-\_yes},
+\livetarg{chap:DWCHILDRENyes}{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\textquoteright s tag encoding is
-\livetarg{chap:DWCHILDRENno}{DW\-\_CHILDREN\-\_no}, the next
+\livetarg{chap:DWCHILDRENno}{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
\endfoot
\hline
\endlastfoot
-\livelink{chap:DWCHILDRENno}{DW\-\_CHILDREN\-\_no}&0x00 \\
-\livelink{chap:DWCHILDRENyes}{DW\-\_CHILDREN\-\_yes}&0x01 \\ \hline
+\livelink{chap:DWCHILDRENno}{DW\_CHILDREN\_no}&0x00 \\
+\livelink{chap:DWCHILDRENyes}{DW\_CHILDREN\_yes}&0x01 \\ \hline
\end{longtable}
\end{centering}
entry containing 0 for the name and 0 for the form.
The attribute form
-\livetarg{chap:DWFORMindirect}{DW\-\_FORM\-\_indirect} is a special case. For
+\livetarg{chap:DWFORMindirect}{DW\_FORM\_indirect} is a special case. For
attributes with this form, the attribute value itself in the
\addtoindex{.debug\_info} or
\addtoindex{.debug\_types}
and which are given a common interpretation according to the
attribute in which the form is used.
-Form \livetarg{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}
+Form \livetarg{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}
is a member of more
\addtoindexx{rangelistptr class}
than
Table \refersec{tab:attributeencodings}
determines the class of the form.
-\textit{In DWARF V3 the forms \livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and
-\livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} were
+\textit{In DWARF V3 the forms \livelink{chap:DWFORMdata4}{DW\_FORM\_data4} and
+\livelink{chap:DWFORMdata8}{DW\_FORM\_data8} were
\addtoindexx{lineptr class}
members
\addtoindexx{rangelistptr class}
\livelink{chap:macptr}{macptr} or
\livelink{chap:rangelistptr}{rangelistptr}, depending on context. In
DWARF V4
-\livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and
-\livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} are members of class
+\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
+\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:
\item \livelinki{chap:DWATaddressclass}{address}{address class} \\
Represented as an object of appropriate size to hold an
address on the target machine
-(\livetarg{chap:DWFORMaddr}{DW\-\_FORM\-\_addr}).
+(\livetarg{chap:DWFORMaddr}{DW\_FORM\_addr}).
The size is
encoded in the compilation unit header
(see Section \refersec{datarep:compilationunitheader}).
\begin{myindentpara}{1cm}
A 1\dash byte length followed by 0 to 255 contiguous information
-bytes (\livetarg{chap:DWFORMblock1}{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 (\livetarg{chap:DWFORMblock2}{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 (\livetarg{chap:DWFORMblock4}{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 (\livetarg{chap:DWFORMblock}{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
There are six forms of constants. There are fixed length
constant data forms for one, two, four and eight byte values
(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}).
+\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 (\livetarg{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}) and unsigned
-(\livetarg{chap:DWFORMudata}{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 \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}
+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
machine data (such as an integer or floating point constant)
will be in target machine byte\dash order.
-\textit{If one of the \livetarg{chap:DWFORMdata}{DW\-\_FORM\-\_data}\textless n\textgreater
+\textit{If one of the \livetarg{chap:DWFORMdata}{DW\_FORM\_data}\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 \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} or
-\livelink{chap:DWFORMudata}{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
-\livelink{chap:DWFORMdata}{DW\-\_FORM\-\_data}\textless n\textgreater.}
+\livelink{chap:DWFORMdata}{DW\_FORM\_data}\textless n\textgreater.}
\needlines{4}
\item \livelink{chap:exprloc}{exprloc} \\
This is an unsigned LEB128 length followed by the
number of information bytes specified by the length
-(\livetarg{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc}).
+(\livetarg{chap:DWFORMexprloc}{DW\_FORM\_exprloc}).
The information bytes contain a DWARF
expression
(see Section \refersec{chap:dwarfexpressions})
\item \livelink{chap:flag}{flag} \\
A flag \addtoindexx{flag class}
is represented explicitly as a single byte of data
-(\livetarg{chap:DWFORMflag}{DW\-\_FORM\-\_flag}) or
-implicitly (\livetarg{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present}).
+(\livetarg{chap:DWFORMflag}{DW\_FORM\_flag}) or
+implicitly (\livetarg{chap:DWFORMflagpresent}{DW\_FORM\_flag\_present}).
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,
\addtoindexx{section offset!in class lineptr value}
the
\addtoindex{.debug\_line} section
-(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}).
+(\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}).
It consists of an offset from the
beginning of the
\addtoindex{.debug\_line}
This is an offset into the
\addtoindex{.debug\_loc}
section
-(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}).
+(\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}).
It consists of an offset from the
\addtoindexx{section offset!in class loclistptr value}
beginning of the
\addtoindexx{section offset!in class macptr value}
offset into the
\addtoindex{.debug\_macinfo} section
-(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}).
+(\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}).
It consists of an offset from the
beginning of the \addtoindex{.debug\_macinfo}
section to the first byte of
This is an
\addtoindexx{section offset!in class rangelistptr value}
offset into the \addtoindex{.debug\_ranges} section
-(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}).
+(\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}).
It consists of an
offset from the beginning of the
\addtoindex{.debug\_ranges} section
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, \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}).
+(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
-(\livetarg{chap:DWFORMrefudata}{DW\-\_FORM\-\_ref\-\_udata}).
+(\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.
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
-(\livetarg{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr})
+(\livetarg{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr})
is an offset from the beginning of the
\addtoindex{.debug\_info}
section of the target executable or shared object;
\textit{A debugging information entry that may be referenced by
another compilation unit using
-\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} must have a
+\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr} must have a
global symbolic name.}
\textit{For a reference from one executable or shared object to
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 (\livetarg{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8}) is the
+reference (\livetarg{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8}) is the
\addtoindexx{type signature}
64\dash bit type signature
(see Section \refersec{datarep:typesignaturecomputation})
\addtoindexx{string class}
A string may be represented immediately in the
debugging information entry itself
-(\livetarg{chap:DWFORMstring}{DW\-\_FORM\-\_string}), or may
+(\livetarg{chap:DWFORMstring}{DW\_FORM\_string}), or may
be represented as an
\addtoindexx{section offset!in class string value}
offset into a string table contained in
the \addtoindex{.debug\_str} section of the object file
-(\livetarg{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}). In
+(\livetarg{chap:DWFORMstrp}{DW\_FORM\_strp}). In
the 32\dash bit DWARF format, the representation of a
-\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}
+\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 \livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}
+If the \livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}
\addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8} attribute is specified for the
compilation unit entry, string values are encoded using the
UTF\dash 8 (\addtoindex{Unicode} Transformation Format\dash 8) from the Universal
\hline
\ddag \ \textit{New in \addtoindex{DWARF Version 4}}
\endlastfoot
-\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling}&0x01&reference
+\livelink{chap:DWATsibling}{DW\_AT\_sibling}&0x01&reference
\addtoindexx{sibling attribute!encoding} \\
-\livelink{chap:DWATlocation}{DW\-\_AT\-\_location}&0x02&\livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATlocation}{DW\_AT\_location}&0x02&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr}\addtoindexx{location attribute!encoding} \\
-\livelink{chap:DWATname}{DW\-\_AT\-\_name}&0x03&string
+\livelink{chap:DWATname}{DW\_AT\_name}&0x03&string
\addtoindexx{name attribute!encoding} \\
-\livelink{chap:DWATordering}{DW\-\_AT\-\_ordering}&0x09&constant
+\livelink{chap:DWATordering}{DW\_AT\_ordering}&0x09&constant
\addtoindexx{ordering attribute!encoding} \\
-\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}&0x0b&constant, \livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}&0x0b&constant, \livelink{chap:exprloc}{exprloc},
reference \addtoindexx{byte size attribute!encoding} \\
-\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}&0x0c&constant,
+\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset}&0x0c&constant,
\livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit offset attribute!encoding} \\
-\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}&0x0d&constant,
+\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}&0x0d&constant,
\livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit size attribute!encoding} \\
-\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list}&0x10&\livelink{chap:lineptr}{lineptr}
+\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list}&0x10&\livelink{chap:lineptr}{lineptr}
\addtoindexx{statement list attribute!encoding} \\
-\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}&0x11&address
+\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}&0x11&address
\addtoindexx{low PC attribute!encoding} \\
-\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}&0x12&address, constant
+\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}&0x12&address, constant
\addtoindexx{high PC attribute!encoding} \\
-\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}&0x13&constant
+\livelink{chap:DWATlanguage}{DW\_AT\_language}&0x13&constant
\addtoindexx{language attribute!encoding} \\
-\livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr}&0x15&reference
+\livelink{chap:DWATdiscr}{DW\_AT\_discr}&0x15&reference
\addtoindexx{discriminant attribute!encoding} \\
-\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value}&0x16&constant
+\livelink{chap:DWATdiscrvalue}{DW\_AT\_discr\_value}&0x16&constant
\addtoindexx{discriminant value attribute!encoding} \\
-\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility}&0x17&constant
+\livelink{chap:DWATvisibility}{DW\_AT\_visibility}&0x17&constant
\addtoindexx{visibility attribute!encoding} \\
-\livelink{chap:DWATimport}{DW\-\_AT\-\_import}&0x18&reference
+\livelink{chap:DWATimport}{DW\_AT\_import}&0x18&reference
\addtoindexx{import attribute!encoding} \\
-\livelink{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length}&0x19&\livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATstringlength}{DW\_AT\_string\_length}&0x19&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr} \addtoindexx{string length attribute!encoding} \\
-\livelink{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference}&0x1a&reference
+\livelink{chap:DWATcommonreference}{DW\_AT\_common\_reference}&0x1a&reference
\addtoindexx{common reference attribute!encoding} \\
-\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir}&0x1b&string
+\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir}&0x1b&string
\addtoindexx{compilation directory attribute!encoding} \\
-\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}&0x1c&\livelink{chap:block}{block}, constant, string
+\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}&0x1c&\livelink{chap:block}{block}, constant, string
\addtoindexx{constant value attribute!encoding} \\
-\livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}&0x1d&reference
+\livelink{chap:DWATcontainingtype}{DW\_AT\_containing\_type}&0x1d&reference
\addtoindexx{containing type attribute!encoding} \\
-\livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value}&0x1e&reference
+\livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value}&0x1e&reference
\addtoindexx{default value attribute!encoding} \\
-\livelink{chap:DWATinline}{DW\-\_AT\-\_inline}&0x20&constant
+\livelink{chap:DWATinline}{DW\_AT\_inline}&0x20&constant
\addtoindexx{inline attribute!encoding} \\
-\livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}&0x21&\livelink{chap:flag}{flag}
+\livelink{chap:DWATisoptional}{DW\_AT\_is\_optional}&0x21&\livelink{chap:flag}{flag}
\addtoindexx{is optional attribute!encoding} \\
-\livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}&0x22&constant,
+\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}&0x22&constant,
\livelink{chap:exprloc}{exprloc}, reference \addtoindexx{lower bound attribute!encoding} \\
-\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer}&0x25&string \addtoindexx{producer attribute!encoding} \\
-\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped}&0x27&\livelink{chap:flag}{flag}
+\livelink{chap:DWATproducer}{DW\_AT\_producer}&0x25&string \addtoindexx{producer attribute!encoding} \\
+\livelink{chap:DWATprototyped}{DW\_AT\_prototyped}&0x27&\livelink{chap:flag}{flag}
\addtoindexx{prototyped attribute!encoding} \\
-\livelink{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr}&0x2a&\livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATreturnaddr}{DW\_AT\_return\_addr}&0x2a&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr} \addtoindexx{return address attribute!encoding} \\
% FIXME: lower case , not Constant
-\livelink{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope}&0x2c&constant,
+\livelink{chap:DWATstartscope}{DW\_AT\_start\_scope}&0x2c&constant,
\livelink{chap:rangelistptr}{rangelistptr} \addtoindexx{start scope attribute!encoding} \\
-\livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride}&0x2e&constant,
+\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride}&0x2e&constant,
\livelink{chap:exprloc}{exprloc}, reference \addtoindexx{bit stride attribute!encoding} \\
-\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}&0x2f&constant,
+\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}&0x2f&constant,
\livelink{chap:exprloc}{exprloc}, reference \addtoindexx{upper bound attribute!encoding} \\
-\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}&0x31&reference
+\livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}&0x31&reference
\addtoindexx{abstract origin attribute!encoding} \\
-\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}&0x32&constant
+\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}&0x32&constant
\addtoindexx{accessibility attribute!encoding} \\
-\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class}&0x33&constant
+\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class}&0x33&constant
\addtoindexx{address class attribute!encoding} \\
-\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}&0x34&\livelink{chap:flag}{flag}
+\livelink{chap:DWATartificial}{DW\_AT\_artificial}&0x34&\livelink{chap:flag}{flag}
\addtoindexx{artificial attribute!encoding} \\
-\livelink{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types}&0x35&reference
+\livelink{chap:DWATbasetypes}{DW\_AT\_base\_types}&0x35&reference
\addtoindexx{base types attribute!encoding} \\
-\livelink{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention}&0x36&constant
+\livelink{chap:DWATcallingconvention}{DW\_AT\_calling\_convention}&0x36&constant
\addtoindexx{calling convention attribute!encoding} \\
-\livelink{chap:DWATcount}{DW\-\_AT\-\_count}&0x37&constant, \livelink{chap:exprloc}{exprloc}, reference
+\livelink{chap:DWATcount}{DW\_AT\_count}&0x37&constant, \livelink{chap:exprloc}{exprloc}, reference
\addtoindexx{count attribute!encoding} \\
-\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}&0x38&constant,
+\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}&0x38&constant,
\livelink{chap:exprloc}{exprloc}, \livelink{chap:loclistptr}{loclistptr}
\addtoindexx{data member attribute!encoding} \\
-\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column}&0x39&constant
+\livelink{chap:DWATdeclcolumn}{DW\_AT\_decl\_column}&0x39&constant
\addtoindexx{declaration column attribute!encoding} \\
-\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}&0x3a&constant
+\livelink{chap:DWATdeclfile}{DW\_AT\_decl\_file}&0x3a&constant
\addtoindexx{declaration file attribute!encoding} \\
-\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}&0x3b&constant
+\livelink{chap:DWATdeclline}{DW\_AT\_decl\_line}&0x3b&constant
\addtoindexx{declaration line attribute!encoding} \\
-\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}&0x3c&\livelink{chap:flag}{flag}
+\livelink{chap:DWATdeclaration}{DW\_AT\_declaration}&0x3c&\livelink{chap:flag}{flag}
\addtoindexx{declaration attribute!encoding} \\
-\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}&0x3d&\livelink{chap:block}{block}
+\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list}&0x3d&\livelink{chap:block}{block}
\addtoindexx{discriminant list attribute!encoding} \\
-\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}&0x3e&constant
+\livelink{chap:DWATencoding}{DW\_AT\_encoding}&0x3e&constant
\addtoindexx{encoding attribute!encoding} \\
-\livelink{chap:DWATexternal}{DW\-\_AT\-\_external}&\xiiif&\livelink{chap:flag}{flag}
+\livelink{chap:DWATexternal}{DW\_AT\_external}&\xiiif&\livelink{chap:flag}{flag}
\addtoindexx{external attribute!encoding} \\
-\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}&0x40&\livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATframebase}{DW\_AT\_frame\_base}&0x40&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr} \addtoindexx{frame base attribute!encoding} \\
-\livelink{chap:DWATfriend}{DW\-\_AT\-\_friend}&0x41&reference
+\livelink{chap:DWATfriend}{DW\_AT\_friend}&0x41&reference
\addtoindexx{friend attribute!encoding} \\
-\livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}&0x42&constant
+\livelink{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}&0x42&constant
\addtoindexx{identifier case attribute!encoding} \\
-\livelink{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info}&0x43&\livelink{chap:macptr}{macptr}
+\livelink{chap:DWATmacroinfo}{DW\_AT\_macro\_info}&0x43&\livelink{chap:macptr}{macptr}
\addtoindexx{macro information attribute!encoding} \\
-\livelink{chap:DWATnamelistitem}{DW\-\_AT\-\_namelist\-\_item}&0x44&reference
+\livelink{chap:DWATnamelistitem}{DW\_AT\_namelist\_item}&0x44&reference
\addtoindexx{name list item attribute!encoding} \\
-\livelink{chap:DWATpriority}{DW\-\_AT\-\_priority}&0x45&reference
+\livelink{chap:DWATpriority}{DW\_AT\_priority}&0x45&reference
\addtoindexx{priority attribute!encoding} \\
-\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment}&0x46&\livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATsegment}{DW\_AT\_segment}&0x46&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr} \addtoindexx{segment attribute!encoding} \\
-\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification}&0x47&reference
+\livelink{chap:DWATspecification}{DW\_AT\_specification}&0x47&reference
\addtoindexx{specification attribute!encoding} \\
-\livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}&0x48&\livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}&0x48&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr} \addtoindexx{static link attribute!encoding} \\
-\livelink{chap:DWATtype}{DW\-\_AT\-\_type}&0x49&reference
+\livelink{chap:DWATtype}{DW\_AT\_type}&0x49&reference
\addtoindexx{type attribute!encoding} \\
-\livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location}&0x4a&\livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATuselocation}{DW\_AT\_use\_location}&0x4a&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr} \addtoindexx{location list attribute!encoding} \\
-\livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}&0x4b&\livelink{chap:flag}{flag}
+\livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter}&0x4b&\livelink{chap:flag}{flag}
\addtoindexx{variable parameter attribute!encoding} \\
-\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}&0x4c&constant
+\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality}&0x4c&constant
\addtoindexx{virtuality attribute!encoding} \\
-\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}&0x4d&\livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}&0x4d&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr} \addtoindexx{vtable element location attribute!encoding} \\
-\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated}&0x4e&constant, \livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATallocated}{DW\_AT\_allocated}&0x4e&constant, \livelink{chap:exprloc}{exprloc},
reference \addtoindexx{allocated attribute!encoding} \\
-\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated}&0x4f&constant, \livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATassociated}{DW\_AT\_associated}&0x4f&constant, \livelink{chap:exprloc}{exprloc},
reference \addtoindexx{associated attribute!encoding} \\
-\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}&0x50&\livelink{chap:exprloc}{exprloc}
+\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}&0x50&\livelink{chap:exprloc}{exprloc}
\addtoindexx{data location attribute!encoding} \\
-\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}&0x51&constant, \livelink{chap:exprloc}{exprloc},
+\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride}&0x51&constant, \livelink{chap:exprloc}{exprloc},
reference \addtoindexx{byte stride attribute!encoding} \\
-\livelink{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc}&0x52&address
+\livelink{chap:DWATentrypc}{DW\_AT\_entry\_pc}&0x52&address
\addtoindexx{entry pc attribute!encoding} \\
-\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}&0x53&\livelink{chap:flag}{flag}
+\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}&0x53&\livelink{chap:flag}{flag}
\addtoindexx{use UTF8 attribute!encoding}\addtoindexx{UTF-8} \\
-\livelink{chap:DWATextension}{DW\-\_AT\-\_extension}&0x54&reference
+\livelink{chap:DWATextension}{DW\_AT\_extension}&0x54&reference
\addtoindexx{extension attribute!encoding} \\
-\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges}&0x55&\livelink{chap:rangelistptr}{rangelistptr}
+\livelink{chap:DWATranges}{DW\_AT\_ranges}&0x55&\livelink{chap:rangelistptr}{rangelistptr}
\addtoindexx{ranges attribute!encoding} \\
-\livelink{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline}&0x56&address, \livelink{chap:flag}{flag},
+\livelink{chap:DWATtrampoline}{DW\_AT\_trampoline}&0x56&address, \livelink{chap:flag}{flag},
reference, string \addtoindexx{trampoline attribute!encoding} \\
-\livelink{chap:DWATcallcolumn}{DW\-\_AT\-\_call\-\_column}&0x57&constant
+\livelink{chap:DWATcallcolumn}{DW\_AT\_call\_column}&0x57&constant
\addtoindexx{call column attribute!encoding} \\
-\livelink{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file}&0x58&constant
+\livelink{chap:DWATcallfile}{DW\_AT\_call\_file}&0x58&constant
\addtoindexx{call file attribute!encoding} \\
-\livelink{chap:DWATcallline}{DW\-\_AT\-\_call\-\_line}&0x59&constant
+\livelink{chap:DWATcallline}{DW\_AT\_call\_line}&0x59&constant
\addtoindexx{call line attribute!encoding} \\
-\livelink{chap:DWATdescription}{DW\-\_AT\-\_description}&0x5a&string
+\livelink{chap:DWATdescription}{DW\_AT\_description}&0x5a&string
\addtoindexx{description attribute!encoding} \\
-\livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale}&0x5b&constant
+\livelink{chap:DWATbinaryscale}{DW\_AT\_binary\_scale}&0x5b&constant
\addtoindexx{binary scale attribute!encoding} \\
-\livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}&0x5c&constant
+\livelink{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale}&0x5c&constant
\addtoindexx{decimal scale attribute!encoding} \\
-\livelink{chap:DWATsmall}{DW\-\_AT\-\_small} &0x5d&reference
+\livelink{chap:DWATsmall}{DW\_AT\_small} &0x5d&reference
\addtoindexx{small attribute!encoding} \\
-\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}&0x5e&constant
+\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign}&0x5e&constant
\addtoindexx{decimal scale attribute!encoding} \\
-\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count}&0x5f&constant
+\livelink{chap:DWATdigitcount}{DW\_AT\_digit\_count}&0x5f&constant
\addtoindexx{digit count attribute!encoding} \\
-\livelink{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string}&0x60&string
+\livelink{chap:DWATpicturestring}{DW\_AT\_picture\_string}&0x60&string
\addtoindexx{picture string attribute!encoding} \\
-\livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable}&0x61&\livelink{chap:flag}{flag}
+\livelink{chap:DWATmutable}{DW\_AT\_mutable}&0x61&\livelink{chap:flag}{flag}
\addtoindexx{mutable attribute!encoding} \\
-\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}&0x62&\livelink{chap:flag}{flag}
+\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled}&0x62&\livelink{chap:flag}{flag}
\addtoindexx{thread scaled attribute!encoding} \\
-\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit}&0x63&\livelink{chap:flag}{flag}
+\livelink{chap:DWATexplicit}{DW\_AT\_explicit}&0x63&\livelink{chap:flag}{flag}
\addtoindexx{explicit attribute!encoding} \\
-\livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}&0x64&reference
+\livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}&0x64&reference
\addtoindexx{object pointer attribute!encoding} \\
-\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity}&0x65&constant
+\livelink{chap:DWATendianity}{DW\_AT\_endianity}&0x65&constant
\addtoindexx{endianity attribute!encoding} \\
-\livelink{chap:DWATelemental}{DW\-\_AT\-\_elemental}&0x66&\livelink{chap:flag}{flag}
+\livelink{chap:DWATelemental}{DW\_AT\_elemental}&0x66&\livelink{chap:flag}{flag}
\addtoindexx{elemental attribute!encoding} \\
-\livelink{chap:DWATpure}{DW\-\_AT\-\_pure}&0x67&\livelink{chap:flag}{flag}
+\livelink{chap:DWATpure}{DW\_AT\_pure}&0x67&\livelink{chap:flag}{flag}
\addtoindexx{pure attribute!encoding} \\
-\livelink{chap:DWATrecursive}{DW\-\_AT\-\_recursive}&0x68&\livelink{chap:flag}{flag}
+\livelink{chap:DWATrecursive}{DW\_AT\_recursive}&0x68&\livelink{chap:flag}{flag}
\addtoindexx{recursive attribute!encoding} \\
-\livelink{chap:DWATsignature}{DW\-\_AT\-\_signature} \ddag &0x69&reference
+\livelink{chap:DWATsignature}{DW\_AT\_signature} \ddag &0x69&reference
\addtoindexx{signature attribute!encoding} \\
-\livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram} \ddag &0x6a&\livelink{chap:flag}{flag}
+\livelink{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram} \ddag &0x6a&\livelink{chap:flag}{flag}
\addtoindexx{main subprogram attribute!encoding} \\
-\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset} \ddag &0x6b&constant
+\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset} \ddag &0x6b&constant
\addtoindexx{data bit offset attribute!encoding} \\
-\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr} \ddag &0x6c&\livelink{chap:flag}{flag}
+\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr} \ddag &0x6c&\livelink{chap:flag}{flag}
\addtoindexx{constant expression attribute!encoding} \\
-\livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class} \ddag &0x6d&\livelink{chap:flag}{flag}
+\livelink{chap:DWATenumclass}{DW\_AT\_enum\_class} \ddag &0x6d&\livelink{chap:flag}{flag}
\addtoindexx{enumeration class attribute!encoding} \\
-\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \ddag &0x6e&string
+\livelink{chap:DWATlinkagename}{DW\_AT\_linkage\_name} \ddag &0x6e&string
\addtoindexx{linkage name attribute!encoding} \\
-\livetarg{chap:DWATlouser}{DW\-\_AT\-\_lo\-\_user}&0x2000 & --- \addtoindexx{low user attribute encoding} \\
-\livetarg{chap:DWAThiuser}{DW\-\_AT\-\_hi\-\_user}&\xiiifff& --- \addtoindexx{high user attribute encoding} \\
+\livetarg{chap:DWATlouser}{DW\_AT\_lo\_user}&0x2000 & --- \addtoindexx{low user attribute encoding} \\
+\livetarg{chap:DWAThiuser}{DW\_AT\_hi\_user}&\xiiifff& --- \addtoindexx{high user attribute encoding} \\
\end{longtable}
\end{centering}
\hline
\ddag \ \textit{New in \addtoindex{DWARF Version 4}}
\endlastfoot
-\livelink{chap:DWFORMaddr}{DW\-\_FORM\-\_addr}&0x01&address \\
-\livelink{chap:DWFORMblock2}{DW\-\_FORM\-\_block2}&0x03&\livelink{chap:block}{block} \\
-\livelink{chap:DWFORMblock4}{DW\-\_FORM\-\_block4}&0x04&\livelink{chap:block}{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&\livelink{chap:block}{block} \\
-\livelink{chap:DWFORMblock1}{DW\-\_FORM\-\_block1}&0x0a&\livelink{chap:block}{block} \\
-\livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}&0x0b&constant \\
-\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}&0x0c&\livelink{chap:flag}{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&\livelink{chap:flag}{flag} \\
-\livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8} \ddag &0x20&reference \\
+\livelink{chap:DWFORMaddr}{DW\_FORM\_addr}&0x01&address \\
+\livelink{chap:DWFORMblock2}{DW\_FORM\_block2}&0x03&\livelink{chap:block}{block} \\
+\livelink{chap:DWFORMblock4}{DW\_FORM\_block4}&0x04&\livelink{chap:block}{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&\livelink{chap:block}{block} \\
+\livelink{chap:DWFORMblock1}{DW\_FORM\_block1}&0x0a&\livelink{chap:block}{block} \\
+\livelink{chap:DWFORMdata1}{DW\_FORM\_data1}&0x0b&constant \\
+\livelink{chap:DWFORMflag}{DW\_FORM\_flag}&0x0c&\livelink{chap:flag}{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&\livelink{chap:flag}{flag} \\
+\livelink{chap:DWFORMrefsig8}{DW\_FORM\_ref\_sig8} \ddag &0x20&reference \\
\end{longtable}
\end{centering}
\ddag \ \textit{New in \addtoindex{DWARF Version 4}}
\endlastfoot
-\livelink{chap:DWOPaddr}{DW\-\_OP\-\_addr}&0x03&1 & constant address \\
+\livelink{chap:DWOPaddr}{DW\_OP\_addr}&0x03&1 & constant address \\
& & &(size target specific) \\
-\livelink{chap:DWOPderef}{DW\-\_OP\-\_deref}&0x06&0 & \\
-
-
-\livelink{chap:DWOPconst1u}{DW\-\_OP\-\_const1u}&0x08&1&1\dash byte constant \\
-\livelink{chap:DWOPconst1s}{DW\-\_OP\-\_const1s}&0x09&1&1\dash byte constant \\
-\livelink{chap:DWOPconst2u}{DW\-\_OP\-\_const2u}&0x0a&1&2\dash byte constant \\
-\livelink{chap:DWOPconst2s}{DW\-\_OP\-\_const2s}&0x0b&1&2\dash byte constant \\
-\livelink{chap:DWOPconst4u}{DW\-\_OP\-\_const4u}&0x0c&1&4\dash byte constant \\
-\livelink{chap:DWOPconst4s}{DW\-\_OP\-\_const4s}&0x0d&1&4\dash byte constant \\
-\livelink{chap:DWOPconst8u}{DW\-\_OP\-\_const8u}&0x0e&1&8\dash byte constant \\
-\livelink{chap:DWOPconst8s}{DW\-\_OP\-\_const8s}&0x0f&1&8\dash byte constant \\
-\livelink{chap:DWOPconstu}{DW\-\_OP\-\_constu}&0x10&1&ULEB128 constant \\
-\livelink{chap:DWOPconsts}{DW\-\_OP\-\_consts}&0x11&1&SLEB128 constant \\
-\livelink{chap:DWOPdup}{DW\-\_OP\-\_dup}&0x12&0 & \\
-\livelink{chap:DWOPdrop}{DW\-\_OP\-\_drop}&0x13&0 & \\
-\livelink{chap:DWOPover}{DW\-\_OP\-\_over}&0x14&0 & \\
-\livelink{chap:DWOPpick}{DW\-\_OP\-\_pick}&0x15&1&1\dash byte stack index \\
-\livelink{chap:DWOPswap}{DW\-\_OP\-\_swap}&0x16&0 & \\
-\livelink{chap:DWOProt}{DW\-\_OP\-\_rot}&0x17&0 & \\
-\livelink{chap:DWOPxderef}{DW\-\_OP\-\_xderef}&0x18&0 & \\
-\livelink{chap:DWOPabs}{DW\-\_OP\-\_abs}&0x19&0 & \\
-\livelink{chap:DWOPand}{DW\-\_OP\-\_and}&0x1a&0 & \\
-\livelink{chap:DWOPdiv}{DW\-\_OP\-\_div}&0x1b&0 & \\
-
-
-
-\livelink{chap:DWOPminus}{DW\-\_OP\-\_minus}&0x1c&0 & \\
-\livelink{chap:DWOPmod}{DW\-\_OP\-\_mod}&0x1d&0 & \\
-\livelink{chap:DWOPmul}{DW\-\_OP\-\_mul}&0x1e&0 & \\
-\livelink{chap:DWOPneg}{DW\-\_OP\-\_neg}&0x1f&0 & \\
-\livelink{chap:DWOPnot}{DW\-\_OP\-\_not}&0x20&0 & \\
-\livelink{chap:DWOPor}{DW\-\_OP\-\_or}&0x21&0 & \\
-\livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}&0x22&0 & \\
-\livelink{chap:DWOPplusuconst}{DW\-\_OP\-\_plus\-\_uconst}&0x23&1&ULEB128 addend \\
-\livelink{chap:DWOPshl}{DW\-\_OP\-\_shl}&0x24&0 & \\
-\livelink{chap:DWOPshr}{DW\-\_OP\-\_shr}&0x25&0 & \\
-\livelink{chap:DWOPshra}{DW\-\_OP\-\_shra}&0x26&0 & \\
-\livelink{chap:DWOPxor}{DW\-\_OP\-\_xor}&0x27&0 & \\
-
-\livelink{chap:DWOPbra}{DW\-\_OP\-\_bra}&0x28&1 & signed 2\dash byte constant \\
-\livelink{chap:DWOPeq}{DW\-\_OP\-\_eq}&0x29&0 & \\
-\livelink{chap:DWOPge}{DW\-\_OP\-\_ge}&0x2a&0 & \\
-\livelink{chap:DWOPgt}{DW\-\_OP\-\_gt}&0x2b&0 & \\
-\livelink{chap:DWOPle}{DW\-\_OP\-\_le}&0x2c&0 & \\
-\livelink{chap:DWOPlt}{DW\-\_OP\-\_lt}&0x2d&0 & \\
-\livelink{chap:DWOPne}{DW\-\_OP\-\_ne}&0x2e&0 & \\
-\livelink{chap:DWOPskip}{DW\-\_OP\-\_skip}&0x2f&1&signed 2\dash byte constant \\ \hline
-
-\livelink{chap:DWOPlit0}{DW\-\_OP\-\_lit0}&0x30 & 0 & \\
-\livelink{chap:DWOPlit1}{DW\-\_OP\-\_lit1}&0x31 & 0& literals 0 .. 31 = \\
-\ldots & & &\hspace{0.5cm}(\livelink{chap:DWOPlit0}{DW\-\_OP\-\_lit0} + literal) \\
-\livelink{chap:DWOPlit31}{DW\-\_OP\-\_lit31}&0x4f & 0 & \\ \hline
-
-\livelink{chap:DWOPreg0}{DW\-\_OP\-\_reg0} & 0x50 & 0 & \\
-\livelink{chap:DWOPreg1}{DW\-\_OP\-\_reg1} & 0x51 & 0® 0 .. 31 = \\
-\ldots & & &\hspace{0.5cm}(\livelink{chap:DWOPreg0}{DW\-\_OP\-\_reg0} + regnum) \\
-\livelink{chap:DWOPreg31}{DW\-\_OP\-\_reg31} & 0x6f & 0 & \\ \hline
-
-\livelink{chap:DWOPbreg0}{DW\-\_OP\-\_breg0} & 0x70 &1 & SLEB128 offset \\
-\livelink{chap:DWOPbreg1}{DW\-\_OP\-\_breg1} & 0x71 & 1 &base register 0 .. 31 = \\
-... & & &\hspace{0.5cm}(\livelink{chap:DWOPbreg0}{DW\-\_OP\-\_breg0} + regnum) \\
-\livelink{chap:DWOPbreg31}{DW\-\_OP\-\_breg31} & 0x8f & 1 & \\ \hline
-
-\livelink{chap:DWOPregx}{DW\-\_OP\-\_regx} & 0x90 &1&ULEB128 register \\
-\livelink{chap:DWOPfbreg}{DW\-\_OP\-\_fbreg} & 0x91&1&SLEB128 offset \\
-\livelink{chap:DWOPbregx}{DW\-\_OP\-\_bregx} & 0x92&2 &ULEB128 register followed \\
+\livelink{chap:DWOPderef}{DW\_OP\_deref}&0x06&0 & \\
+
+
+\livelink{chap:DWOPconst1u}{DW\_OP\_const1u}&0x08&1&1\dash byte constant \\
+\livelink{chap:DWOPconst1s}{DW\_OP\_const1s}&0x09&1&1\dash byte constant \\
+\livelink{chap:DWOPconst2u}{DW\_OP\_const2u}&0x0a&1&2\dash byte constant \\
+\livelink{chap:DWOPconst2s}{DW\_OP\_const2s}&0x0b&1&2\dash byte constant \\
+\livelink{chap:DWOPconst4u}{DW\_OP\_const4u}&0x0c&1&4\dash byte constant \\
+\livelink{chap:DWOPconst4s}{DW\_OP\_const4s}&0x0d&1&4\dash byte constant \\
+\livelink{chap:DWOPconst8u}{DW\_OP\_const8u}&0x0e&1&8\dash byte constant \\
+\livelink{chap:DWOPconst8s}{DW\_OP\_const8s}&0x0f&1&8\dash byte constant \\
+\livelink{chap:DWOPconstu}{DW\_OP\_constu}&0x10&1&ULEB128 constant \\
+\livelink{chap:DWOPconsts}{DW\_OP\_consts}&0x11&1&SLEB128 constant \\
+\livelink{chap:DWOPdup}{DW\_OP\_dup}&0x12&0 & \\
+\livelink{chap:DWOPdrop}{DW\_OP\_drop}&0x13&0 & \\
+\livelink{chap:DWOPover}{DW\_OP\_over}&0x14&0 & \\
+\livelink{chap:DWOPpick}{DW\_OP\_pick}&0x15&1&1\dash byte stack index \\
+\livelink{chap:DWOPswap}{DW\_OP\_swap}&0x16&0 & \\
+\livelink{chap:DWOProt}{DW\_OP\_rot}&0x17&0 & \\
+\livelink{chap:DWOPxderef}{DW\_OP\_xderef}&0x18&0 & \\
+\livelink{chap:DWOPabs}{DW\_OP\_abs}&0x19&0 & \\
+\livelink{chap:DWOPand}{DW\_OP\_and}&0x1a&0 & \\
+\livelink{chap:DWOPdiv}{DW\_OP\_div}&0x1b&0 & \\
+
+
+
+\livelink{chap:DWOPminus}{DW\_OP\_minus}&0x1c&0 & \\
+\livelink{chap:DWOPmod}{DW\_OP\_mod}&0x1d&0 & \\
+\livelink{chap:DWOPmul}{DW\_OP\_mul}&0x1e&0 & \\
+\livelink{chap:DWOPneg}{DW\_OP\_neg}&0x1f&0 & \\
+\livelink{chap:DWOPnot}{DW\_OP\_not}&0x20&0 & \\
+\livelink{chap:DWOPor}{DW\_OP\_or}&0x21&0 & \\
+\livelink{chap:DWOPplus}{DW\_OP\_plus}&0x22&0 & \\
+\livelink{chap:DWOPplusuconst}{DW\_OP\_plus\_uconst}&0x23&1&ULEB128 addend \\
+\livelink{chap:DWOPshl}{DW\_OP\_shl}&0x24&0 & \\
+\livelink{chap:DWOPshr}{DW\_OP\_shr}&0x25&0 & \\
+\livelink{chap:DWOPshra}{DW\_OP\_shra}&0x26&0 & \\
+\livelink{chap:DWOPxor}{DW\_OP\_xor}&0x27&0 & \\
+
+\livelink{chap:DWOPbra}{DW\_OP\_bra}&0x28&1 & signed 2\dash byte constant \\
+\livelink{chap:DWOPeq}{DW\_OP\_eq}&0x29&0 & \\
+\livelink{chap:DWOPge}{DW\_OP\_ge}&0x2a&0 & \\
+\livelink{chap:DWOPgt}{DW\_OP\_gt}&0x2b&0 & \\
+\livelink{chap:DWOPle}{DW\_OP\_le}&0x2c&0 & \\
+\livelink{chap:DWOPlt}{DW\_OP\_lt}&0x2d&0 & \\
+\livelink{chap:DWOPne}{DW\_OP\_ne}&0x2e&0 & \\
+\livelink{chap:DWOPskip}{DW\_OP\_skip}&0x2f&1&signed 2\dash byte constant \\ \hline
+
+\livelink{chap:DWOPlit0}{DW\_OP\_lit0}&0x30 & 0 & \\
+\livelink{chap:DWOPlit1}{DW\_OP\_lit1}&0x31 & 0& literals 0 .. 31 = \\
+\ldots & & &\hspace{0.5cm}(\livelink{chap:DWOPlit0}{DW\_OP\_lit0} + literal) \\
+\livelink{chap:DWOPlit31}{DW\_OP\_lit31}&0x4f & 0 & \\ \hline
+
+\livelink{chap:DWOPreg0}{DW\_OP\_reg0} & 0x50 & 0 & \\
+\livelink{chap:DWOPreg1}{DW\_OP\_reg1} & 0x51 & 0® 0 .. 31 = \\
+\ldots & & &\hspace{0.5cm}(\livelink{chap:DWOPreg0}{DW\_OP\_reg0} + regnum) \\
+\livelink{chap:DWOPreg31}{DW\_OP\_reg31} & 0x6f & 0 & \\ \hline
+
+\livelink{chap:DWOPbreg0}{DW\_OP\_breg0} & 0x70 &1 & SLEB128 offset \\
+\livelink{chap:DWOPbreg1}{DW\_OP\_breg1} & 0x71 & 1 &base register 0 .. 31 = \\
+... & & &\hspace{0.5cm}(\livelink{chap:DWOPbreg0}{DW\_OP\_breg0} + regnum) \\
+\livelink{chap:DWOPbreg31}{DW\_OP\_breg31} & 0x8f & 1 & \\ \hline
+
+\livelink{chap:DWOPregx}{DW\_OP\_regx} & 0x90 &1&ULEB128 register \\
+\livelink{chap:DWOPfbreg}{DW\_OP\_fbreg} & 0x91&1&SLEB128 offset \\
+\livelink{chap:DWOPbregx}{DW\_OP\_bregx} & 0x92&2 &ULEB128 register followed \\
& & & by SLEB128 offset \\
-\livelink{chap:DWOPpiece}{DW\-\_OP\-\_piece} & 0x93 &1& ULEB128 size of piece addressed \\
-\livelink{chap:DWOPderefsize}{DW\-\_OP\-\_deref\-\_size} & 0x94 &1& 1-byte size of data retrieved \\
-\livelink{chap:DWOPxderefsize}{DW\-\_OP\-\_xderef\-\_size} & 0x95&1&1-byte size of data retrieved \\
-\livelink{chap:DWOPnop}{DW\-\_OP\-\_nop} & 0x96 &0& \\
+\livelink{chap:DWOPpiece}{DW\_OP\_piece} & 0x93 &1& ULEB128 size of piece addressed \\
+\livelink{chap:DWOPderefsize}{DW\_OP\_deref\_size} & 0x94 &1& 1-byte size of data retrieved \\
+\livelink{chap:DWOPxderefsize}{DW\_OP\_xderef\_size} & 0x95&1&1-byte size of data retrieved \\
+\livelink{chap:DWOPnop}{DW\_OP\_nop} & 0x96 &0& \\
-\livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}&0x97&0 & \\
-\livelink{chap:DWOPcall2}{DW\-\_OP\-\_call2}&0x98&1& 2\dash byte offset of DIE \\
-\livelink{chap:DWOPcall4}{DW\-\_OP\-\_call4}&0x99&1& 4\dash byte offset of DIE \\
-\livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref}&0x9a&1& 4\dash\ or 8\dash byte\\
+\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}&0x97&0 & \\
+\livelink{chap:DWOPcall2}{DW\_OP\_call2}&0x98&1& 2\dash byte offset of DIE \\
+\livelink{chap:DWOPcall4}{DW\_OP\_call4}&0x99&1& 4\dash byte offset of DIE \\
+\livelink{chap:DWOPcallref}{DW\_OP\_call\_ref}&0x9a&1& 4\dash\ or 8\dash byte\\
&&& offset of DIE \\
-\livelink{chap:DWOPformtlsaddress}{DW\-\_OP\-\_form\-\_tls\-\_address}&0x9b &0& \\
-\livelink{chap:DWOPcallframecfa}{DW\-\_OP\-\_call\-\_frame\-\_cfa} &0x9c &0& \\
-\livelink{chap:DWOPbitpiece}{DW\-\_OP\-\_bit\-\_piece}&0x9d &2&ULEB128 size followed by \\
+\livelink{chap:DWOPformtlsaddress}{DW\_OP\_form\_tls\_address}&0x9b &0& \\
+\livelink{chap:DWOPcallframecfa}{DW\_OP\_call\_frame\_cfa} &0x9c &0& \\
+\livelink{chap:DWOPbitpiece}{DW\_OP\_bit\_piece}&0x9d &2&ULEB128 size followed by \\
&&&ULEB128 offset\\
-\livelink{chap:DWOPimplicitvalue}{DW\-\_OP\-\_implicit\-\_value} \ddag &0x9e &2&ULEB128 size followed by \\
+\livelink{chap:DWOPimplicitvalue}{DW\_OP\_implicit\_value} \ddag &0x9e &2&ULEB128 size followed by \\
&&&\nolink{block} of that size\\
-\livelink{chap:DWOPstackvalue}{DW\-\_OP\-\_stack\-\_value} \ddag &0x9f &0& \\
-\livetarg{chap:DWOPlouser}{DW\-\_OP\-\_lo\-\_user} &0xe0 && \\
-\livetarg{chap:DWOPhiuser}{DW\-\_OP\-\_hi\-\_user} &\xff && \\
+\livelink{chap:DWOPstackvalue}{DW\_OP\_stack\_value} \ddag &0x9f &0& \\
+\livetarg{chap:DWOPlouser}{DW\_OP\_lo\_user} &0xe0 && \\
+\livetarg{chap:DWOPhiuser}{DW\_OP\_hi\_user} &\xff && \\
\end{longtable}
\end{centering}
constants used in
\addtoindexx{encoding attribute!encoding}
the
-\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}
+\livelink{chap:DWATencoding}{DW\_AT\_encoding}
attribute are given in
Table \refersec{tab:basetypeencodingvalues}
\ddag \ \textit{New in \addtoindex{DWARF Version 4}}
\endlastfoot
-\livelink{chap:DWATEaddress}{DW\-\_ATE\-\_address}&0x01 \\
-\livelink{chap:DWATEboolean}{DW\-\_ATE\-\_boolean}&0x02 \\
-\livelink{chap:DWATEcomplexfloat}{DW\-\_ATE\-\_complex\-\_float}&0x03 \\
-\livelink{chap:DWATEfloat}{DW\-\_ATE\-\_float}&0x04 \\
-\livelink{chap:DWATEsigned}{DW\-\_ATE\-\_signed}&0x05 \\
-\livelink{chap:DWATEsignedchar}{DW\-\_ATE\-\_signed\-\_char}&0x06 \\
-\livelink{chap:DWATEunsigned}{DW\-\_ATE\-\_unsigned}&0x07 \\
-\livelink{chap:DWATEunsignedchar}{DW\-\_ATE\-\_unsigned\-\_char}&0x08 \\
-\livelink{chap:DWATEimaginaryfloat}{DW\-\_ATE\-\_imaginary\-\_float}&0x09 \\
-\livelink{chap:DWATEpackeddecimal}{DW\-\_ATE\-\_packed\-\_decimal}&0x0a \\
-\livelink{chap:DWATEnumericstring}{DW\-\_ATE\-\_numeric\-\_string}&0x0b \\
-\livelink{chap:DWATEedited}{DW\-\_ATE\-\_edited}&0x0c \\
-\livelink{chap:DWATEsignedfixed}{DW\-\_ATE\-\_signed\-\_fixed}&0x0d \\
-\livelink{chap:DWATEunsignedfixed}{DW\-\_ATE\-\_unsigned\-\_fixed}&0x0e \\
-\livelink{chap:DWATEdecimalfloat}{DW\-\_ATE\-\_decimal\-\_float} & 0x0f \\
-\livelink{chap:DWATEUTF}{DW\-\_ATE\-\_UTF} \ddag & 0x10 \\
-\livetarg{chap:DWATElouser}{DW\-\_ATE\-\_lo\-\_user} & 0x80 \\
-\livetarg{chap:DWATEhiuser}{DW\-\_ATE\-\_hi\-\_user} & \xff \\
+\livelink{chap:DWATEaddress}{DW\_ATE\_address}&0x01 \\
+\livelink{chap:DWATEboolean}{DW\_ATE\_boolean}&0x02 \\
+\livelink{chap:DWATEcomplexfloat}{DW\_ATE\_complex\_float}&0x03 \\
+\livelink{chap:DWATEfloat}{DW\_ATE\_float}&0x04 \\
+\livelink{chap:DWATEsigned}{DW\_ATE\_signed}&0x05 \\
+\livelink{chap:DWATEsignedchar}{DW\_ATE\_signed\_char}&0x06 \\
+\livelink{chap:DWATEunsigned}{DW\_ATE\_unsigned}&0x07 \\
+\livelink{chap:DWATEunsignedchar}{DW\_ATE\_unsigned\_char}&0x08 \\
+\livelink{chap:DWATEimaginaryfloat}{DW\_ATE\_imaginary\_float}&0x09 \\
+\livelink{chap:DWATEpackeddecimal}{DW\_ATE\_packed\_decimal}&0x0a \\
+\livelink{chap:DWATEnumericstring}{DW\_ATE\_numeric\_string}&0x0b \\
+\livelink{chap:DWATEedited}{DW\_ATE\_edited}&0x0c \\
+\livelink{chap:DWATEsignedfixed}{DW\_ATE\_signed\_fixed}&0x0d \\
+\livelink{chap:DWATEunsignedfixed}{DW\_ATE\_unsigned\_fixed}&0x0e \\
+\livelink{chap:DWATEdecimalfloat}{DW\_ATE\_decimal\_float} & 0x0f \\
+\livelink{chap:DWATEUTF}{DW\_ATE\_UTF} \ddag & 0x10 \\
+\livetarg{chap:DWATElouser}{DW\_ATE\_lo\_user} & 0x80 \\
+\livetarg{chap:DWATEhiuser}{DW\_ATE\_hi\_user} & \xff \\
\end{longtable}
\end{centering}
The encodings of the constants used in the
-\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign} attribute
+\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign} attribute
are given in
Table \refersec{tab:decimalsignencodings}.
\hline
\endlastfoot
-\livelink{chap:DWDSunsigned}{DW\-\_DS\-\_unsigned} & 0x01 \\
-\livelink{chap:DWDSleadingoverpunch}{DW\-\_DS\-\_leading\-\_overpunch} & 0x02 \\
-\livelink{chap:DWDStrailingoverpunch}{DW\-\_DS\-\_trailing\-\_overpunch} & 0x03 \\
-\livelink{chap:DWDSleadingseparate}{DW\-\_DS\-\_leading\-\_separate} & 0x04 \\
-\livelink{chap:DWDStrailingseparate}{DW\-\_DS\-\_trailing\-\_separate} & 0x05 \\
+\livelink{chap:DWDSunsigned}{DW\_DS\_unsigned} & 0x01 \\
+\livelink{chap:DWDSleadingoverpunch}{DW\_DS\_leading\_overpunch} & 0x02 \\
+\livelink{chap:DWDStrailingoverpunch}{DW\_DS\_trailing\_overpunch} & 0x03 \\
+\livelink{chap:DWDSleadingseparate}{DW\_DS\_leading\_separate} & 0x04 \\
+\livelink{chap:DWDStrailingseparate}{DW\_DS\_trailing\_separate} & 0x05 \\
\end{longtable}
\end{centering}
The encodings of the constants used in the
-\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity} attribute are given in
+\livelink{chap:DWATendianity}{DW\_AT\_endianity} attribute are given in
Table \refersec{tab:endianityencodings}.
\begin{centering}
\hline
\endlastfoot
-\livelink{chap:DWENDdefault}{DW\-\_END\-\_default} & 0x00 \\
-\livelink{chap:DWENDbig}{DW\-\_END\-\_big} & 0x01 \\
-\livelink{chap:DWENDlittle}{DW\-\_END\-\_little} & 0x02 \\
-\livetarg{chap:DWENDlouser}{DW\-\_END\-\_lo\-\_user} & 0x40 \\
-\livetarg{chap:DWENDhiuser}{DW\-\_END\-\_hi\-\_user} & \xff \\
+\livelink{chap:DWENDdefault}{DW\_END\_default} & 0x00 \\
+\livelink{chap:DWENDbig}{DW\_END\_big} & 0x01 \\
+\livelink{chap:DWENDlittle}{DW\_END\_little} & 0x02 \\
+\livetarg{chap:DWENDlouser}{DW\_END\_lo\_user} & 0x40 \\
+\livetarg{chap:DWENDhiuser}{DW\_END\_hi\_user} & \xff \\
\end{longtable}
\end{centering}
\section{Accessibility Codes}
\label{datarep:accessibilitycodes}
The encodings of the constants used in the
-\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}
+\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility}
attribute
\addtoindexx{accessibility attribute!encoding}
are given in
\hline
\endlastfoot
-\livelink{chap:DWACCESSpublic}{DW\-\_ACCESS\-\_public}&0x01 \\
-\livelink{chap:DWACCESSprotected}{DW\-\_ACCESS\-\_protected}&0x02 \\
-\livelink{chap:DWACCESSprivate}{DW\-\_ACCESS\-\_private}&0x03 \\
+\livelink{chap:DWACCESSpublic}{DW\_ACCESS\_public}&0x01 \\
+\livelink{chap:DWACCESSprotected}{DW\_ACCESS\_protected}&0x02 \\
+\livelink{chap:DWACCESSprivate}{DW\_ACCESS\_private}&0x03 \\
\end{longtable}
\end{centering}
\section{Visibility Codes}
\label{datarep:visibilitycodes}
The encodings of the constants used in the
-\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} attribute are given in
+\livelink{chap:DWATvisibility}{DW\_AT\_visibility} attribute are given in
Table \refersec{tab:visibilityencodings}.
\begin{centering}
\hline
\endlastfoot
-\livelink{chap:DWVISlocal}{DW\-\_VIS\-\_local}&0x01 \\
-\livelink{chap:DWVISexported}{DW\-\_VIS\-\_exported}&0x02 \\
-\livelink{chap:DWVISqualified}{DW\-\_VIS\-\_qualified}&0x03 \\
+\livelink{chap:DWVISlocal}{DW\_VIS\_local}&0x01 \\
+\livelink{chap:DWVISexported}{DW\_VIS\_exported}&0x02 \\
+\livelink{chap:DWVISqualified}{DW\_VIS\_qualified}&0x03 \\
\end{longtable}
\end{centering}
\label{datarep:vitualitycodes}
The encodings of the constants used in the
-\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality} attribute are given in
+\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality} attribute are given in
Table \refersec{tab:virtualityencodings}.
\begin{centering}
\hline
\endlastfoot
-\livelink{chap:DWVIRTUALITYnone}{DW\-\_VIRTUALITY\-\_none}&0x00 \\
-\livelink{chap:DWVIRTUALITYvirtual}{DW\-\_VIRTUALITY\-\_virtual}&0x01 \\
-\livelink{chap:DWVIRTUALITYpurevirtual}{DW\-\_VIRTUALITY\-\_pure\-\_virtual}&0x02 \\
+\livelink{chap:DWVIRTUALITYnone}{DW\_VIRTUALITY\_none}&0x00 \\
+\livelink{chap:DWVIRTUALITYvirtual}{DW\_VIRTUALITY\_virtual}&0x01 \\
+\livelink{chap:DWVIRTUALITYpurevirtual}{DW\_VIRTUALITY\_pure\_virtual}&0x02 \\
\end{centering}
The value
-\livelink{chap:DWVIRTUALITYnone}{DW\-\_VIRTUALITY\-\_none} is equivalent to the absence of the
-\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}
+\livelink{chap:DWVIRTUALITYnone}{DW\_VIRTUALITY\_none} is equivalent to the absence of the
+\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality}
attribute.
\section{Source Languages}
in
\addtoindexx{language name encoding}
the
-\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}
+\livelink{chap:DWATlanguage}{DW\_AT\_language}
attribute are given in
Table \refersec{tab:languageencodings}.
Names marked with
also shows the
\addtoindexx{lower bound attribute!default}
default lower bound, if any, assumed for
-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
+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}
\dag \ \textit{See text}
\endlastfoot
-\livelink{chap:DWLANGC89}{DW\-\_LANG\-\_C89}&0x0001&0 \\
-\livelink{chap:DWLANGC}{DW\-\_LANG\-\_C}&0x0002&0 \\
-\livelink{chap:DWLANGAda83}{DW\-\_LANG\-\_Ada83} \dag &0x0003&1 \addtoindexx{Ada} \\
-\livelink{chap:DWLANGCplusplus}{DW\-\_LANG\-\_C\-\_plus\-\_plus} &0x0004&0 \\
-\livelink{chap:DWLANGCobol74}{DW\-\_LANG\-\_Cobol74} \dag &0x0005&1 \\
-\livelink{chap:DWLANGCobol85}{DW\-\_LANG\-\_Cobol85} \dag &0x0006&1 \\
-\livelink{chap:DWLANGFortran77}{DW\-\_LANG\-\_Fortran77}&0x0007&1 \\
-\livelink{chap:DWLANGFortran90}{DW\-\_LANG\-\_Fortran90}&0x0008&1 \\
-\livelink{chap:DWLANGPascal83}{DW\-\_LANG\-\_Pascal83}&0x0009&1 \\
-\livelink{chap:DWLANGModula2}{DW\-\_LANG\-\_Modula2}&0x000a&1 \\
-\livelink{chap:DWLANGJava}{DW\-\_LANG\-\_Java}&0x000b&0 \\
-\livelink{chap:DWLANGC99}{DW\-\_LANG\-\_C99}&0x000c&0 \\
-\livelink{chap:DWLANGAda95}{DW\-\_LANG\-\_Ada95} \dag &0x000d&1 \addtoindexx{Ada} \\
-\livelink{chap:DWLANGFortran95}{DW\-\_LANG\-\_Fortran95} &0x000e&1 \\
-\livelink{chap:DWLANGPLI}{DW\-\_LANG\-\_PLI} \dag &0x000f&1 \\
-\livelink{chap:DWLANGObjC}{DW\-\_LANG\-\_ObjC}&0x0010&0 \\
-\livelink{chap:DWLANGObjCplusplus}{DW\-\_LANG\-\_ObjC\-\_plus\-\_plus}&0x0011&0 \\
-\livelink{chap:DWLANGUPC}{DW\-\_LANG\-\_UPC}&0x0012&0 \\
-\livelink{chap:DWLANGD}{DW\-\_LANG\-\_D}&0x0013&0 \\
-\livelink{chap:DWLANGPython}{DW\-\_LANG\-\_Python} \dag &0x0014&0 \\
-\livetarg{chap:DWLANGlouser}{DW\-\_LANG\-\_lo\-\_user}&0x8000 & \\
-\livetarg{chap:DWLANGhiuser}{DW\-\_LANG\-\_hi\-\_user}&\xffff & \\
+\livelink{chap:DWLANGC89}{DW\_LANG\_C89}&0x0001&0 \\
+\livelink{chap:DWLANGC}{DW\_LANG\_C}&0x0002&0 \\
+\livelink{chap:DWLANGAda83}{DW\_LANG\_Ada83} \dag &0x0003&1 \addtoindexx{Ada} \\
+\livelink{chap:DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus} &0x0004&0 \\
+\livelink{chap:DWLANGCobol74}{DW\_LANG\_Cobol74} \dag &0x0005&1 \\
+\livelink{chap:DWLANGCobol85}{DW\_LANG\_Cobol85} \dag &0x0006&1 \\
+\livelink{chap:DWLANGFortran77}{DW\_LANG\_Fortran77}&0x0007&1 \\
+\livelink{chap:DWLANGFortran90}{DW\_LANG\_Fortran90}&0x0008&1 \\
+\livelink{chap:DWLANGPascal83}{DW\_LANG\_Pascal83}&0x0009&1 \\
+\livelink{chap:DWLANGModula2}{DW\_LANG\_Modula2}&0x000a&1 \\
+\livelink{chap:DWLANGJava}{DW\_LANG\_Java}&0x000b&0 \\
+\livelink{chap:DWLANGC99}{DW\_LANG\_C99}&0x000c&0 \\
+\livelink{chap:DWLANGAda95}{DW\_LANG\_Ada95} \dag &0x000d&1 \addtoindexx{Ada} \\
+\livelink{chap:DWLANGFortran95}{DW\_LANG\_Fortran95} &0x000e&1 \\
+\livelink{chap:DWLANGPLI}{DW\_LANG\_PLI} \dag &0x000f&1 \\
+\livelink{chap:DWLANGObjC}{DW\_LANG\_ObjC}&0x0010&0 \\
+\livelink{chap:DWLANGObjCplusplus}{DW\_LANG\_ObjC\_plus\_plus}&0x0011&0 \\
+\livelink{chap:DWLANGUPC}{DW\_LANG\_UPC}&0x0012&0 \\
+\livelink{chap:DWLANGD}{DW\_LANG\_D}&0x0013&0 \\
+\livelink{chap:DWLANGPython}{DW\_LANG\_Python} \dag &0x0014&0 \\
+\livetarg{chap:DWLANGlouser}{DW\_LANG\_lo\_user}&0x8000 & \\
+\livetarg{chap:DWLANGhiuser}{DW\_LANG\_hi\_user}&\xffff & \\
\end{longtable}
\end{centering}
The value of the common
\addtoindexi{address}{address class!attribute encoding}
class encoding
-\livelink{chap:DWADDRnone}{DW\-\_ADDR\-\_none} is 0.
+\livelink{chap:DWADDRnone}{DW\_ADDR\_none} is 0.
\section{Identifier Case}
\label{datarep:identifiercase}
The encodings of the constants used in the
-\livelink{chap:DWATidentifiercase}{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}
\endfoot
\hline
\endlastfoot
-\livelink{chap:DWIDcasesensitive}{DW\-\_ID\-\_case\-\_sensitive}&0x00 \\
-\livelink{chap:DWIDupcase}{DW\-\_ID\-\_up\-\_case}&0x01 \\
-\livelink{chap:DWIDdowncase}{DW\-\_ID\-\_down\-\_case}&0x02 \\
-\livelink{chap:DWIDcaseinsensitive}{DW\-\_ID\-\_case\-\_insensitive}&0x03 \\
+\livelink{chap:DWIDcasesensitive}{DW\_ID\_case\_sensitive}&0x00 \\
+\livelink{chap:DWIDupcase}{DW\_ID\_up\_case}&0x01 \\
+\livelink{chap:DWIDdowncase}{DW\_ID\_down\_case}&0x02 \\
+\livelink{chap:DWIDcaseinsensitive}{DW\_ID\_case\_insensitive}&0x03 \\
\end{longtable}
\end{centering}
\section{Calling Convention Encodings}
\label{datarep:callingconventionencodings}
The encodings of the constants used in the
-\livelink{chap:DWATcallingconvention}{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}
\hline
\endlastfoot
-\livelink{chap:DWCCnormal}{DW\-\_CC\-\_normal}&0x01 \\
-\livelink{chap:DWCCprogram}{DW\-\_CC\-\_program}&0x02 \\
-\livelink{chap:DWCCnocall}{DW\-\_CC\-\_nocall}&0x03 \\
-\livetarg{chap:DWCClouser}{DW\-\_CC\-\_lo\-\_user}&0x40 \\
-\livetarg{chap:DWCChiuser}{DW\-\_CC\-\_hi\-\_user}&\xff \\
+\livelink{chap:DWCCnormal}{DW\_CC\_normal}&0x01 \\
+\livelink{chap:DWCCprogram}{DW\_CC\_program}&0x02 \\
+\livelink{chap:DWCCnocall}{DW\_CC\_nocall}&0x03 \\
+\livetarg{chap:DWCClouser}{DW\_CC\_lo\_user}&0x40 \\
+\livetarg{chap:DWCChiuser}{DW\_CC\_hi\_user}&\xff \\
\end{longtable}
\end{centering}
The encodings of the constants used in
\addtoindexx{inline attribute!encoding}
the
-\livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute are given in
+\livelink{chap:DWATinline}{DW\_AT\_inline} attribute are given in
Table \refersec{tab:inlineencodings}.
\needlines{8}
\hline
\endlastfoot
-\livelink{chap:DWINLnotinlined}{DW\-\_INL\-\_not\-\_inlined}&0x00 \\
-\livelink{chap:DWINLinlined}{DW\-\_INL\-\_inlined}&0x01 \\
-\livelink{chap:DWINLdeclarednotinlined}{DW\-\_INL\-\_declared\-\_not\-\_inlined}&0x02 \\
-\livelink{chap:DWINLdeclaredinlined}{DW\-\_INL\-\_declared\-\_inlined}&0x03 \\
+\livelink{chap:DWINLnotinlined}{DW\_INL\_not\_inlined}&0x00 \\
+\livelink{chap:DWINLinlined}{DW\_INL\_inlined}&0x01 \\
+\livelink{chap:DWINLdeclarednotinlined}{DW\_INL\_declared\_not\_inlined}&0x02 \\
+\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined}&0x03 \\
\end{longtable}
\end{centering}
\label{datarep:arrayordering}
The encodings of the constants used in the
-\livelink{chap:DWATordering}{DW\-\_AT\-\_ordering} attribute are given in
+\livelink{chap:DWATordering}{DW\_AT\_ordering} attribute are given in
Table \refersec{tab:orderingencodings}.
\begin{centering}
\hline
\endlastfoot
-\livelink{chap:DWORDrowmajor}{DW\-\_ORD\-\_row\-\_major}&0x00 \\
-\livelink{chap:DWORDcolmajor}{DW\-\_ORD\-\_col\-\_major}&0x01 \\
+\livelink{chap:DWORDrowmajor}{DW\_ORD\_row\_major}&0x00 \\
+\livelink{chap:DWORDcolmajor}{DW\_ORD\_col\_major}&0x01 \\
\end{longtable}
\end{centering}
The descriptors used in
\addtoindexx{discriminant list attribute!encoding}
the
-\livelink{chap:DWATdiscrlist}{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}.
\hline
\endlastfoot
-\livetarg{chap:DWDSClabel}{DW\-\_DSC\-\_label}&0x00 \\
-\livetarg{chap:DWDSCrange}{DW\-\_DSC\-\_range}&0x01 \\
+\livetarg{chap:DWDSClabel}{DW\_DSC\_label}&0x00 \\
+\livetarg{chap:DWDSCrange}{DW\_DSC\_range}&0x01 \\
\end{longtable}
\end{centering}
\hline
\endlastfoot
-\livelink{chap:DWLNScopy}{DW\-\_LNS\-\_copy}&0x01 \\
-\livelink{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc}&0x02 \\
-\livelink{chap:DWLNSadvanceline}{DW\-\_LNS\-\_advance\-\_line}&0x03 \\
-\livelink{chap:DWLNSsetfile}{DW\-\_LNS\-\_set\-\_file}&0x04 \\
-\livelink{chap:DWLNSsetcolumn}{DW\-\_LNS\-\_set\-\_column}&0x05 \\
-\livelink{chap:DWLNSnegatestmt}{DW\-\_LNS\-\_negate\-\_stmt}&0x06 \\
-\livelink{chap:DWLNSsetbasicblock}{DW\-\_LNS\-\_set\-\_basic\-\_block}&0x07 \\
-\livelink{chap:DWLNSconstaddpc}{DW\-\_LNS\-\_const\-\_add\-\_pc}&0x08 \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc}&0x09 \\
-\livelink{chap:DWLNSsetprologueend}{DW\-\_LNS\-\_set\-\_prologue\-\_end}&0x0a \\
-\livelink{chap:DWLNSsetepiloguebegin}{DW\-\_LNS\-\_set\-\_epilogue\-\_begin}&0x0b \\
-\livelink{chap:DWLNSsetisa}{DW\-\_LNS\-\_set\-\_isa}&0x0c \\
+\livelink{chap:DWLNScopy}{DW\_LNS\_copy}&0x01 \\
+\livelink{chap:DWLNSadvancepc}{DW\_LNS\_advance\_pc}&0x02 \\
+\livelink{chap:DWLNSadvanceline}{DW\_LNS\_advance\_line}&0x03 \\
+\livelink{chap:DWLNSsetfile}{DW\_LNS\_set\_file}&0x04 \\
+\livelink{chap:DWLNSsetcolumn}{DW\_LNS\_set\_column}&0x05 \\
+\livelink{chap:DWLNSnegatestmt}{DW\_LNS\_negate\_stmt}&0x06 \\
+\livelink{chap:DWLNSsetbasicblock}{DW\_LNS\_set\_basic\_block}&0x07 \\
+\livelink{chap:DWLNSconstaddpc}{DW\_LNS\_const\_add\_pc}&0x08 \\
+\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x09 \\
+\livelink{chap:DWLNSsetprologueend}{DW\_LNS\_set\_prologue\_end}&0x0a \\
+\livelink{chap:DWLNSsetepiloguebegin}{DW\_LNS\_set\_epilogue\_begin}&0x0b \\
+\livelink{chap:DWLNSsetisa}{DW\_LNS\_set\_isa}&0x0c \\
\end{longtable}
\end{centering}
\ddag \ \textit{New in \addtoindex{DWARF Version 4}}
\endlastfoot
-\livelink{chap:DWLNEendsequence}{DW\-\_LNE\-\_end\-\_sequence}&0x01 \\
-\livelink{chap:DWLNEsetaddress}{DW\-\_LNE\-\_set\-\_address}&0x02\\
-\livelink{chap:DWLNEdefinefile}{DW\-\_LNE\-\_define\-\_file}&0x03\\
-\livelink{chap:DWLNEsetdiscriminator}{DW\-\_LNE\-\_set\-\_discriminator} \ddag &0x04 \\
-\livetarg{chap:DWLNElouser}{DW\-\_LNE\-\_lo\-\_user}&0x80 \\
-\livetarg{chap:DWLNEhiuser}{DW\-\_LNE\-\_hi\-\_user}&\xff \\
+\livelink{chap:DWLNEendsequence}{DW\_LNE\_end\_sequence}&0x01 \\
+\livelink{chap:DWLNEsetaddress}{DW\_LNE\_set\_address}&0x02\\
+\livelink{chap:DWLNEdefinefile}{DW\_LNE\_define\_file}&0x03\\
+\livelink{chap:DWLNEsetdiscriminator}{DW\_LNE\_set\_discriminator} \ddag &0x04 \\
+\livetarg{chap:DWLNElouser}{DW\_LNE\_lo\_user}&0x80 \\
+\livetarg{chap:DWLNEhiuser}{DW\_LNE\_hi\_user}&\xff \\
\end{longtable}
\end{centering}
The source line numbers and source file indices encoded in the
macro information section are represented as unsigned LEB128
numbers as are the constants in a
-\livelink{chap:DWMACINFOvendorext}{DW\-\_MACINFO\-\_vendor\-\_ext} entry.
+\livelink{chap:DWMACINFOvendorext}{DW\_MACINFO\_vendor\_ext} entry.
The macinfo type is encoded as a single byte.
The encodings
\hline
\endlastfoot
-\livelink{chap:DWMACINFOdefine}{DW\-\_MACINFO\-\_define}&0x01 \\
-\livelink{chap:DWMACINFOundef}{DW\-\_MACINFO\-\_undef}&0x02 \\
-\livelink{chap:DWMACINFOstartfile}{DW\-\_MACINFO\-\_start\-\_file}&0x03 \\
-\livelink{chap:DWMACINFOendfile}{DW\-\_MACINFO\-\_end\-\_file}&0x04 \\
-\livelink{chap:DWMACINFOvendorext}{DW\-\_MACINFO\-\_vendor\-\_ext}&\xff \\
+\livelink{chap:DWMACINFOdefine}{DW\_MACINFO\_define}&0x01 \\
+\livelink{chap:DWMACINFOundef}{DW\_MACINFO\_undef}&0x02 \\
+\livelink{chap:DWMACINFOstartfile}{DW\_MACINFO\_start\_file}&0x03 \\
+\livelink{chap:DWMACINFOendfile}{DW\_MACINFO\_end\_file}&0x04 \\
+\livelink{chap:DWMACINFOvendorext}{DW\_MACINFO\_vendor\_ext}&\xff \\
\end{longtable}
\end{centering}
\hline
\endlastfoot
-\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}&0x1&delta & \\
-\livelink{chap:DWCFAoffset}{DW\-\_CFA\-\_offset}&0x2®ister&ULEB128 offset \\
-\livelink{chap:DWCFArestore}{DW\-\_CFA\-\_restore}&0x3®ister & & \\
-\livelink{chap:DWCFAnop}{DW\-\_CFA\-\_nop}&0&0 & & \\
-\livelink{chap:DWCFAsetloc}{DW\-\_CFA\-\_set\-\_loc}&0&0x01&address & \\
-\livelink{chap:DWCFAadvanceloc1}{DW\-\_CFA\-\_advance\-\_loc1}&0&0x02&1\dash byte delta & \\
-\livelink{chap:DWCFAadvanceloc2}{DW\-\_CFA\-\_advance\-\_loc2}&0&0x03&2\dash byte delta & \\
-\livelink{chap:DWCFAadvanceloc4}{DW\-\_CFA\-\_advance\-\_loc4}&0&0x04&4\dash byte delta & \\
-\livelink{chap:DWCFAoffsetextended}{DW\-\_CFA\-\_offset\-\_extended}&0&0x05&ULEB128 register&ULEB128 offset \\
-\livelink{chap:DWCFArestoreextended}{DW\-\_CFA\-\_restore\-\_extended}&0&0x06&ULEB128 register & \\
-\livelink{chap:DWCFAundefined}{DW\-\_CFA\-\_undefined}&0&0x07&ULEB128 register & \\
-\livelink{chap:DWCFAsamevalue}{DW\-\_CFA\-\_same\-\_value}&0&0x08 &ULEB128 register & \\
-\livelink{chap:DWCFAregister}{DW\-\_CFA\-\_register}&0&0x09&ULEB128 register &ULEB128 offset \\
-\livelink{chap:DWCFArememberstate}{DW\-\_CFA\-\_remember\-\_state}&0&0x0a & & \\
-\livelink{chap:DWCFArestorestate}{DW\-\_CFA\-\_restore\-\_state}&0&0x0b & & \\
-\livelink{chap:DWCFAdefcfa}{DW\-\_CFA\-\_def\-\_cfa}&0&0x0c &ULEB128 register&ULEB128 offset \\
-\livelink{chap:DWCFAdefcfaregister}{DW\-\_CFA\-\_def\-\_cfa\-\_register}&0&0x0d&ULEB128 register & \\
-\livelink{chap:DWCFAdefcfaoffset}{DW\-\_CFA\-\_def\-\_cfa\-\_offset}&0&0x0e &ULEB128 offset & \\
-\livelink{chap:DWCFAdefcfaexpression}{DW\-\_CFA\-\_def\-\_cfa\-\_expression}&0&0x0f &BLOCK \\
-\livelink{chap:DWCFAexpression}{DW\-\_CFA\-\_expression}&0&0x10&ULEB128 register & BLOCK \\
-
-\livelink{chap:DWCFAoffsetextendedsf}{DW\-\_CFA\-\_offset\-\_extended\-\_sf}&0&0x11&ULEB128 register&SLEB128 offset \\
-\livelink{chap:DWCFAdefcfasf}{DW\-\_CFA\-\_def\-\_cfa\-\_sf}&0&0x12&ULEB128 register&SLEB128 offset \\
-\livelink{chap:DWCFAdefcfaoffsetsf}{DW\-\_CFA\-\_def\-\_cfa\-\_offset\-\_sf}&0&0x13&SLEB128 offset & \\
-\livelink{chap:DWCFAvaloffset}{DW\-\_CFA\-\_val\-\_offset}&0&0x14&ULEB128&ULEB128 \\
-\livelink{chap:DWCFAvaloffsetsf}{DW\-\_CFA\-\_val\-\_offset\-\_sf}&0&0x15&ULEB128&SLEB128 \\
-\livelink{chap:DWCFAvalexpression}{DW\-\_CFA\-\_val\-\_expression}&0&0x16&ULEB128&BLOCK \\
-\livetarg{chap:DWCFAlouser}{DW\-\_CFA\-\_lo\-\_user}&0&0x1c & & \\
-\livetarg{chap:DWCFAhiuser}{DW\-\_CFA\-\_hi\-\_user}&0&\xiiif & & \\
+\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}&0x1&delta & \\
+\livelink{chap:DWCFAoffset}{DW\_CFA\_offset}&0x2®ister&ULEB128 offset \\
+\livelink{chap:DWCFArestore}{DW\_CFA\_restore}&0x3®ister & & \\
+\livelink{chap:DWCFAnop}{DW\_CFA\_nop}&0&0 & & \\
+\livelink{chap:DWCFAsetloc}{DW\_CFA\_set\_loc}&0&0x01&address & \\
+\livelink{chap:DWCFAadvanceloc1}{DW\_CFA\_advance\_loc1}&0&0x02&1\dash byte delta & \\
+\livelink{chap:DWCFAadvanceloc2}{DW\_CFA\_advance\_loc2}&0&0x03&2\dash byte delta & \\
+\livelink{chap:DWCFAadvanceloc4}{DW\_CFA\_advance\_loc4}&0&0x04&4\dash byte delta & \\
+\livelink{chap:DWCFAoffsetextended}{DW\_CFA\_offset\_extended}&0&0x05&ULEB128 register&ULEB128 offset \\
+\livelink{chap:DWCFArestoreextended}{DW\_CFA\_restore\_extended}&0&0x06&ULEB128 register & \\
+\livelink{chap:DWCFAundefined}{DW\_CFA\_undefined}&0&0x07&ULEB128 register & \\
+\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value}&0&0x08 &ULEB128 register & \\
+\livelink{chap:DWCFAregister}{DW\_CFA\_register}&0&0x09&ULEB128 register &ULEB128 offset \\
+\livelink{chap:DWCFArememberstate}{DW\_CFA\_remember\_state}&0&0x0a & & \\
+\livelink{chap:DWCFArestorestate}{DW\_CFA\_restore\_state}&0&0x0b & & \\
+\livelink{chap:DWCFAdefcfa}{DW\_CFA\_def\_cfa}&0&0x0c &ULEB128 register&ULEB128 offset \\
+\livelink{chap:DWCFAdefcfaregister}{DW\_CFA\_def\_cfa\_register}&0&0x0d&ULEB128 register & \\
+\livelink{chap:DWCFAdefcfaoffset}{DW\_CFA\_def\_cfa\_offset}&0&0x0e &ULEB128 offset & \\
+\livelink{chap:DWCFAdefcfaexpression}{DW\_CFA\_def\_cfa\_expression}&0&0x0f &BLOCK \\
+\livelink{chap:DWCFAexpression}{DW\_CFA\_expression}&0&0x10&ULEB128 register & BLOCK \\
+
+\livelink{chap:DWCFAoffsetextendedsf}{DW\_CFA\_offset\_extended\_sf}&0&0x11&ULEB128 register&SLEB128 offset \\
+\livelink{chap:DWCFAdefcfasf}{DW\_CFA\_def\_cfa\_sf}&0&0x12&ULEB128 register&SLEB128 offset \\
+\livelink{chap:DWCFAdefcfaoffsetsf}{DW\_CFA\_def\_cfa\_offset\_sf}&0&0x13&SLEB128 offset & \\
+\livelink{chap:DWCFAvaloffset}{DW\_CFA\_val\_offset}&0&0x14&ULEB128&ULEB128 \\
+\livelink{chap:DWCFAvaloffsetsf}{DW\_CFA\_val\_offset\_sf}&0&0x15&ULEB128&SLEB128 \\
+\livelink{chap:DWCFAvalexpression}{DW\_CFA\_val\_expression}&0&0x16&ULEB128&BLOCK \\
+\livetarg{chap:DWCFAlouser}{DW\_CFA\_lo\_user}&0&0x1c & & \\
+\livetarg{chap:DWCFAhiuser}{DW\_CFA\_hi\_user}&0&\xiiif & & \\
\end{longtable}
\end{centering}
append the letter 'C', the DWARF tag of the construct, and
the name (taken from
\addtoindexx{name attribute}
-the \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute) of the type
+the \livelink{chap:DWATname}{DW\_AT\_name} attribute) of the type
\addtoindexx{name attribute}
or namespace (including its trailing null byte).
\simplerule[\textwidth]
\begin{center}
\autocols[0pt]{c}{2}{l}{
-\livelink{chap:DWATname}{DW\-\_AT\-\_name},
-\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility},
-\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class},
-\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated},
-\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial},
-\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated},
-\livelink{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale},
-\livelink{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset},
-\livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size},
-\livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride},
-\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size},
-\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride},
-\livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr},
-\livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value},
-\livelink{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type},
-\livelink{chap:DWATcount}{DW\-\_AT\-\_count},
-\livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset},
-\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location},
-\livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location},
-\livelink{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale},
-\livelink{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign},
-\livelink{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value},
-\livelink{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count},
-\livelink{chap:DWATdiscr}{DW\-\_AT\-\_discr},
-\livelink{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list},
-\livelink{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value},
-\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding},
-\livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class},
-\livelink{chap:DWATendianity}{DW\-\_AT\-\_endianity},
-\livelink{chap:DWATexplicit}{DW\-\_AT\-\_explicit},
-\livelink{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional},
-\livelink{chap:DWATlocation}{DW\-\_AT\-\_location},
-\livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound},
-\livelink{chap:DWATmutable}{DW\-\_AT\-\_mutable},
-\livelink{chap:DWATordering}{DW\-\_AT\-\_ordering},
-\livelink{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string},
-\livelink{chap:DWATprototyped}{DW\-\_AT\-\_prototyped},
-\livelink{chap:DWATsmall}{DW\-\_AT\-\_small},
-\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment},
-\livelink{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length},
-\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled},
-\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound},
-\livelink{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location},
-\livelink{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8},
-\livelink{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter},
-\livelink{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality},
-\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility},
-\livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}
+\livelink{chap:DWATname}{DW\_AT\_name},
+\livelink{chap:DWATaccessibility}{DW\_AT\_accessibility},
+\livelink{chap:DWATaddressclass}{DW\_AT\_address\_class},
+\livelink{chap:DWATallocated}{DW\_AT\_allocated},
+\livelink{chap:DWATartificial}{DW\_AT\_artificial},
+\livelink{chap:DWATassociated}{DW\_AT\_associated},
+\livelink{chap:DWATbinaryscale}{DW\_AT\_binary\_scale},
+\livelink{chap:DWATbitoffset}{DW\_AT\_bit\_offset},
+\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size},
+\livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride},
+\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size},
+\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride},
+\livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr},
+\livelink{chap:DWATconstvalue}{DW\_AT\_const\_value},
+\livelink{chap:DWATcontainingtype}{DW\_AT\_containing\_type},
+\livelink{chap:DWATcount}{DW\_AT\_count},
+\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset},
+\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location},
+\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location},
+\livelink{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale},
+\livelink{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign},
+\livelink{chap:DWATdefaultvalue}{DW\_AT\_default\_value},
+\livelink{chap:DWATdigitcount}{DW\_AT\_digit\_count},
+\livelink{chap:DWATdiscr}{DW\_AT\_discr},
+\livelink{chap:DWATdiscrlist}{DW\_AT\_discr\_list},
+\livelink{chap:DWATdiscrvalue}{DW\_AT\_discr\_value},
+\livelink{chap:DWATencoding}{DW\_AT\_encoding},
+\livelink{chap:DWATenumclass}{DW\_AT\_enum\_class},
+\livelink{chap:DWATendianity}{DW\_AT\_endianity},
+\livelink{chap:DWATexplicit}{DW\_AT\_explicit},
+\livelink{chap:DWATisoptional}{DW\_AT\_is\_optional},
+\livelink{chap:DWATlocation}{DW\_AT\_location},
+\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound},
+\livelink{chap:DWATmutable}{DW\_AT\_mutable},
+\livelink{chap:DWATordering}{DW\_AT\_ordering},
+\livelink{chap:DWATpicturestring}{DW\_AT\_picture\_string},
+\livelink{chap:DWATprototyped}{DW\_AT\_prototyped},
+\livelink{chap:DWATsmall}{DW\_AT\_small},
+\livelink{chap:DWATsegment}{DW\_AT\_segment},
+\livelink{chap:DWATstringlength}{DW\_AT\_string\_length},
+\livelink{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled},
+\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound},
+\livelink{chap:DWATuselocation}{DW\_AT\_use\_location},
+\livelink{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8},
+\livelink{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter},
+\livelink{chap:DWATvirtuality}{DW\_AT\_virtuality},
+\livelink{chap:DWATvisibility}{DW\_AT\_visibility},
+\livelink{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}
}
\end{center}
\simplerule[\textwidth]
\end{table}
Note that except for the initial
-\livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute,
+\livelink{chap:DWATname}{DW\_AT\_name} attribute,
\addtoindexx{name attribute}
attributes are appended in order according to the alphabetical
spelling of their identifier.
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: \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 \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
+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 \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
+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
name to be used is the ABI-specific name of the subprogram
(e.g., the mangled linker name).
-\item If the tag in Step 3 is not 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}, but has
-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
+\item If the tag in Step 3 is not 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}, but has
+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 \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute, append to
+a \livelink{chap:DWATname}{DW\_AT\_name} attribute, append to
\addtoindexx{name attribute}
S the letter 'S', the tag of C, and its name; otherwise,
process C recursively by performing Steps 3 through 7,
For the purposes of this algorithm, if a debugging information
entry S has a
-\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification}
+\livelink{chap:DWATspecification}{DW\_AT\_specification}
attribute that refers to
another entry D (which has a
-\livelink{chap:DWATdeclaration}{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
\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 \livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref}
+another debugging information entry (e.g., a \livelink{chap:DWOPcallref}{DW\_OP\_call\_ref}
operator), as it is unlikely that the entry will remain
identical across compilation units.}
\textit{Certain attributes are not included in the type signature:}
\begin{itemize}
-\item \textit{The \livelink{chap:DWATdeclaration}{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
\addtoindexx{type unit}
separate type units.}
-\item \textit{The \livelink{chap:DWATdescription}{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 \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
+\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
\addtoindexx{MD5 hash}
same hash.}
-\item \textit{The \livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer} attribute is not included
+\item \textit{The \livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer} attribute is not included
because the information it provides is not necessary for the
computation of a unique type signature.}
%d
\item \addtoindex{.debug\_info} and \addtoindex{.debug\_types} \\
Attribute values of class string may have form
-\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}, whose
+\livelink{chap:DWFORMstrp}{DW\_FORM\_strp}, whose
value is the offset in the \addtoindex{.debug\_str}
section of the corresponding string.
%e
\item \addtoindex{.debug\_loc} \\
-The operand of the \livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref}
+The operand of the \livelink{chap:DWOPcallref}{DW\_OP\_call\_ref}
DWARF expression operator is the
offset of a debugging information entry in the
\addtoindex{.debug\_info} section.
\item \addtoindex{.debug\_info} \\
An attribute value of class \livelink{chap:loclistptr}{loclistptr}
(specifically form
-\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset})
+\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset})
is an offset within the \addtoindex{.debug\_loc}
section of a
\addtoindex{location list}.
\item \addtoindex{.debug\_info} \\
An attribute value of class \livelink{chap:rangelistptr}{rangelistptr}
(specifically form
-\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset})
+\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset})
is an offset within the \addtoindex{.debug\_ranges} section of
a range list.
\item \addtoindex{.debug\_info} \\
An attribute value of class
\livelink{chap:macptr}{macptr} (specifically form
-\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) is an
+\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}) is an
offset within the
\addtoindex{.debug\_macinfo} section
of the beginning of the macro information for the referencing unit.
\item \addtoindex{.debug\_info} \\
An attribute value of class
\livelink{chap:lineptr}{lineptr} (specifically form
-\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset})
+\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset})
is an offset in the
\addtoindex{.debug\_line} section of the
beginning of the line number information for the referencing unit.
\newcommand{\referfol}[1]{\ref{#1} following}
% Generate a live link in the document
-% use like \livelink{chap:DWOPdup}{DW\-\_OP\-\_dup}
+% use like \livelink{chap:DWOPdup}{DW\_OP\_dup}
\newcommand{\livelink}[2]{\hyperlink{#1}{#2}\index{#2}}
% use when the index is different from the text and target.
\newcommand{\livelinki}[3]{\hyperlink{#1}{#2}\index{#3}}
\newcommand{\xffffffffffffffff} {\texttt{0xffffffffffffffff}} % use with following punctutation
\newcommand{\wffffffffffffffff} {\texttt{0xffffffffffffffff}\ }
-% Define commands for all of the DWARF names (DW_*, .debug_*, a few others)
+% Define commands for all of the DWARF names (DW\_*, .debug_*, a few others)
\include{dwarfnamecmds}
%--- Begin the document pages
% These eliminate the need to use escapes for the underscores and
% add entries for indexing
%
-\newcommand{\DWFORMstrp}[1][]{\addtoindex{DW\-\_FORM\-\_strp}}
-\newcommand{\DWOPcallref}[1][]{\addtoindex{DW\-\_OP\-\_call\_ref}}
+\newcommand{\DWFORMstrp}[1][]{\addtoindex{DW\_FORM\_strp}}
+\newcommand{\DWOPcallref}[1][]{\addtoindex{DW\_OP\_call\_ref}}
\newcommand{\DWATlocation}[1][]{\addtoindex{DW\_AT\_location}}
\newcommand{\DWATranges}[1][]{\addtoindex{DW\_AT\_ranges}}
\newcommand{\DWATmacroinfo}[1][]{\addtoindex{DW\_AT\_macro\_info}}
"myfile.c"
"Best Compiler Corp, V1.3"
"/home/mydir/src"
-\livelink{chap:DWLANGC89}{DW\-\_LANG\-\_C89}
+\livelink{chap:DWLANGC89}{DW\_LANG\_C89}
0x0
0x55
-\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}
+\livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}
0x0
\vspace{0.01cm}
\hrule
2
"char"
-\livelink{chap:DWATEunsignedchar}{DW\-\_ATE\-\_unsigned\-\_char}
+\livelink{chap:DWATEunsignedchar}{DW\_ATE\_unsigned\_char}
1
\vspace{0.01cm}
\hrule
\scriptsize
\begin{alltt}\vspace{0.06cm}
1
-\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
-\livelink{chap:DWCHILDRENyes}{DW\-\_CHILDREN\-\_yes}
-\livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}
-\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}
-\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}
-\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language} \livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}
-\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \livelink{chap:DWFORMaddr}{DW\-\_FORM\-\_addr}
-\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}
-\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list} \livelink{chap:DWFORMindirect}{DW\-\_FORM\-\_indirect}
+\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+\livelink{chap:DWCHILDRENyes}{DW\_CHILDREN\_yes}
+\livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string}
+\livelink{chap:DWATproducer}{DW\_AT\_producer} \livelink{chap:DWFORMstring}{DW\_FORM\_string}
+\livelink{chap:DWATcompdir}{DW\_AT\_comp\_dir} \livelink{chap:DWFORMstring}{DW\_FORM\_string}
+\livelink{chap:DWATlanguage}{DW\_AT\_language} \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
+\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} \livelink{chap:DWFORMaddr}{DW\_FORM\_addr}
+\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
+\livelink{chap:DWATstmtlist}{DW\_AT\_stmt\_list} \livelink{chap:DWFORMindirect}{DW\_FORM\_indirect}
0
\vspace{0.01cm}
\hrule
2
-\livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
-\livelink{chap:DWCHILDRENno}{DW\-\_CHILDREN\-\_no}
-\livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}
-\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding} \livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}
-\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size} \livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}
+\livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+\livelink{chap:DWCHILDRENno}{DW\_CHILDREN\_no}
+\livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string}
+\livelink{chap:DWATencoding}{DW\_AT\_encoding} \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
+\livelink{chap:DWATbytesize}{DW\_AT\_byte\_size} \livelink{chap:DWFORMdata1}{DW\_FORM\_data1}
0
\vspace{0.01cm}
\hrule
3
-\livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
-\livelink{chap:DWCHILDRENno}{DW\-\_CHILDREN\-\_no}
-\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \livelink{chap:DWFORMref4}{DW\-\_FORM\-\_ref4}
+\livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+\livelink{chap:DWCHILDRENno}{DW\_CHILDREN\_no}
+\livelink{chap:DWATtype}{DW\_AT\_type} \livelink{chap:DWFORMref4}{DW\_FORM\_ref4}
0
\vspace{0.01cm}
\hrule
4
-\livelink{chap:DWTAGtypedef}{DW\-\_TAG\-\_typedef}
-\livelink{chap:DWCHILDRENno}{DW\-\_CHILDREN\-\_no}
-\livelink{chap:DWATname}{DW\-\_AT\-\_name} \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}
-\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}
+\livelink{chap:DWTAGtypedef}{DW\_TAG\_typedef}
+\livelink{chap:DWCHILDRENno}{DW\_CHILDREN\_no}
+\livelink{chap:DWATname}{DW\_AT\_name} \livelink{chap:DWFORMstring}{DW\_FORM\_string}
+\livelink{chap:DWATtype}{DW\_AT\_type} \livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr}
0
\vspace{0.01cm}
\hrule
If an object has a descriptor, then the DWARF type for that
object will have a
-\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}
+\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}
attribute. If an object
does not have a descriptor, then usually the DWARF type for the
object will not have a
-\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}.
+\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}.
(See the following
\addtoindex{Ada} example for a case where the type for an object without
a descriptor does have a
-\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} attribute. In
+\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} attribute. In
that case the object doubles as its own descriptor.)
The \addtoindex{Fortran 90} derived type array\_ptr can now be redescribed
\begin{alltt}
! Description for type of 'ap'
!
-1\$: \livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type}
+1\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
! No name, default (Fortran) ordering, default stride
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to REAL)
- \livelink{chap:DWATassociated}{DW\-\_AT\-\_associated}(expression= ! Test 'ptr\_assoc' \nolink{flag}
- \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n == offset(ptr\_assoc)
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}
- \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref}
- \livelink{chap:DWOPlit1}{DW\-\_OP\-\_lit1} ! mask for 'ptr\_assoc' \nolink{flag}
- \livelink{chap:DWOPand}{DW\-\_OP\-\_and})
- \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}(expression= ! Get raw data address
- \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n == offset(base)
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}
- \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref}) ! Type of index of array 'ap'
-2\$: \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to REAL)
+ \livelink{chap:DWATassociated}{DW\_AT\_associated}(expression= ! Test 'ptr\_assoc' \nolink{flag}
+ \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == offset(ptr\_assoc)
+ \livelink{chap:DWOPplus}{DW\_OP\_plus}
+ \livelink{chap:DWOPderef}{DW\_OP\_deref}
+ \livelink{chap:DWOPlit1}{DW\_OP\_lit1} ! mask for 'ptr\_assoc' \nolink{flag}
+ \livelink{chap:DWOPand}{DW\_OP\_and})
+ \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}(expression= ! Get raw data address
+ \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == offset(base)
+ \livelink{chap:DWOPplus}{DW\_OP\_plus}
+ \livelink{chap:DWOPderef}{DW\_OP\_deref}) ! Type of index of array 'ap'
+2\$: \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
! No name, default stride
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to INTEGER)
- \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}(expression=
- \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n ==
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
+ \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(expression=
+ \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n ==
! offset(desc, dims) +
! offset(dims\_str, lower\_bound)
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}
- \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref})
- \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}(expression=
- \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n ==
+ \livelink{chap:DWOPplus}{DW\_OP\_plus}
+ \livelink{chap:DWOPderef}{DW\_OP\_deref})
+ \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(expression=
+ \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n ==
! offset(desc, dims) +
! offset(dims\_str, upper\_bound)
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}
- \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref})
+ \livelink{chap:DWOPplus}{DW\_OP\_plus}
+ \livelink{chap:DWOPderef}{DW\_OP\_deref})
! Note: for the m'th dimension, the second operator becomes
- ! \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<x> where
+ ! \livelink{chap:DWOPlit}{DW\_OP\_lit}<x> where
! x == offset(desc, dims) +
! (m-1)*sizeof(dims\_str) +
! offset(dims\_str, [lower|upper]\_bound)
\figurepart{2}{2}
\begin{dwflisting}
\begin{alltt}
-3\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("array\_ptr")
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}(constant sizeof(REAL) + sizeof(desc<1>))
-4\$: \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("myvar")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to REAL)
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}(constant 0)
-5\$: \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("ap");
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}(constant sizeof(REAL))
-6\$: \livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type}
+3\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("array\_ptr")
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(constant sizeof(REAL) + sizeof(desc<1>))
+4\$: \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("myvar")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to REAL)
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(constant 0)
+5\$: \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("ap");
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(constant sizeof(REAL))
+6\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
! No name, default (Fortran) ordering, default stride
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 3\$)
- \livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated}(expression= ! Test 'ptr\_alloc' \nolink{flag}
- \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n == offset(ptr\_alloc)
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}
- \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit2} ! Mask for 'ptr\_alloc' \nolink{flag}
- \livelink{chap:DWOPand}{DW\-\_OP\-\_and})
- \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}(expression= ! Get raw data address
- \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n = offset(base)
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}
- \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref})
-7\$: \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
+ \livelink{chap:DWATallocated}{DW\_AT\_allocated}(expression= ! Test 'ptr\_alloc' \nolink{flag}
+ \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == offset(ptr\_alloc)
+ \livelink{chap:DWOPplus}{DW\_OP\_plus}
+ \livelink{chap:DWOPderef}{DW\_OP\_deref}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit2} ! Mask for 'ptr\_alloc' \nolink{flag}
+ \livelink{chap:DWOPand}{DW\_OP\_and})
+ \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}(expression= ! Get raw data address
+ \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n = offset(base)
+ \livelink{chap:DWOPplus}{DW\_OP\_plus}
+ \livelink{chap:DWOPderef}{DW\_OP\_deref})
+7\$: \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
! No name, default stride
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to INTEGER)
- \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}(expression=
- \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n == ...
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}
- \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref})
- \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}(expression=
- \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n == ...
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}
- \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref})
-8\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("arrays")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 6\$)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(expression=
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
+ \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(expression=
+ \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == ...
+ \livelink{chap:DWOPplus}{DW\_OP\_plus}
+ \livelink{chap:DWOPderef}{DW\_OP\_deref})
+ \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(expression=
+ \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == ...
+ \livelink{chap:DWOPplus}{DW\_OP\_plus}
+ \livelink{chap:DWOPderef}{DW\_OP\_deref})
+8\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("arrays")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 6\$)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(expression=
...as appropriate...) ! Assume static allocation
\end{alltt}
\end{dwflisting}
\end{enumerate}
-For a), check for a \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} attribute. Since
+For a), check for a \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} attribute. Since
there is one, go execute the expression, whose result is
the address needed. The object address used in this case
is the object we are working on, namely the variable named
arrays, whose address was found in step 1. (Had there been
-no \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} attribute, the desired address would
+no \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location} attribute, the desired address would
be the same as the address from step 1.)
For b), for each dimension of the array (only one
in this case), go interpret the usual lower bound
attribute. Again this is an expression, which again begins
-with \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}. This object is
+with \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}. This object is
\textbf{still} arrays,
from step 1, because we have not begun to actually perform
any indexing yet.
For c), the default stride applies. Since there is no
-\livelink{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride} attribute, use the size of the array element
+\livelink{chap:DWATbytestride}{DW\_AT\_byte\_stride} attribute, use the size of the array element
type, which is the size of type array\_ptr (at 3\$).
\clearpage
\end{enumerate}
This is just like step 2), so the details are omitted. Recall
-that because the DWARF type 1\$ has a \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location},
+that because the DWARF type 1\$ has a \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location},
the address that results from step 4) is that of a
descriptor, and that address is the address pushed by the
-\livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address} operations in 1\$ and 2\$.
+\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address} operations in 1\$ and 2\$.
Note: we happen to be accessing a pointer array here instead
of an allocatable array; but because there is a common
\begin{enumerate}[1. ]
\item The array VEC2 is ``immediately'' contained within structure
REC2 (there is no intermediate descriptor or indirection),
-which is reflected in the absence of a \livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}
+which is reflected in the absence of a \livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}
attribute on the array type at 28\$.
\item One of the bounds of VEC2 is nonetheless dynamic and part of
\begin{figure}[p]
\begin{dwflisting}
\begin{alltt}
-11\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("M")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to INTEGER)
-12\$: \livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type}
+11\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("M")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
+12\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
! No name, default (\addtoindex{Ada}) order, default stride
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to INTEGER)
-13\$: \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to INTEGER)
- \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}(constant 1)
- \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}(reference to variable M at 11\$)
-14\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("VEC1")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to array type at 12\$)
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
+13\$: \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
+ \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(constant 1)
+ \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(reference to variable M at 11\$)
+14\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("VEC1")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to array type at 12\$)
. . .
-21\$: \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("TEENY")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to INTEGER)
- \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}(constant 1)
- \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}(constant 100)
+21\$: \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("TEENY")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
+ \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(constant 1)
+ \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(constant 100)
. . .
-26\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("REC2")
-27\$: \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("N")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to subtype TEENY at 21\$)
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}(constant 0)
-28\$: \livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type}
+26\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("REC2")
+27\$: \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("N")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to subtype TEENY at 21\$)
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(constant 0)
+28\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
! No name, default (\addtoindex{Ada}) order, default stride
! Default data location
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to INTEGER)
-29\$: \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to subrange TEENY at 21\$)
- \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}(constant 1)
- \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}(reference to member N at 27\$)
-30\$: \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("VEC2")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to array "subtype" at 28\$)
- \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}(machine=
- \livelink{chap:DWOPlit}{DW\-\_OP\-\_lit}<n> ! where n == offset(REC2, VEC2)
- \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus})
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
+29\$: \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to subrange TEENY at 21\$)
+ \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(constant 1)
+ \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(reference to member N at 27\$)
+30\$: \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("VEC2")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to array "subtype" at 28\$)
+ \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(machine=
+ \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == offset(REC2, VEC2)
+ \livelink{chap:DWOPplus}{DW\_OP\_plus})
. . .
-41\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OBJ2B")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to REC2 at 26\$)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...as appropriate...)
+41\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OBJ2B")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to REC2 at 26\$)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...as appropriate...)
\end{alltt}
\end{dwflisting}
\caption{Ada 90 example: DWARF description}
The DWARF representation in
Figure \refersec{fig:packedrecordexampledwarfdescription}
is appropriate.
-\livelink{chap:DWTAGpackedtype}{DW\-\_TAG\-\_packed\-\_type} entries could be added to
+\livelink{chap:DWTAGpackedtype}{DW\_TAG\_packed\_type} entries could be added to
better represent the source, but these do not otherwise affect
the example and are omitted for clarity. Note that this same
representation applies to both typical big\dash \ and
\begin{figure}[p]
\figurepart{1}{2}
\begin{dwflisting}
-% DWARF4 had some entries here as \livelink{chap:DWATmember}{DW_AT_member} .
-% Those are fixed here to \livelink{chap:DWTAGmember}{DW_TAG_member}
+% DWARF4 had some entries here as \livelink{chap:DWATmember}{DW\_AT\_member} .
+% Those are fixed here to \livelink{chap:DWTAGmember}{DW\_TAG\_member}
\begin{alltt}
10\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
\livelink{chap:DWATname}{DW\_AT\_name}("BOOLEAN")
11\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
\livelink{chap:DWATname}{DW\_AT\_name}("INTEGER")
...
-20\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
+20\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
\livelink{chap:DWATname}{DW\_AT\_name}("T")
\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(2)
\livelink{chap:DWTAGmember}{DW\_TAG\_member}
\livelink{chap:DWATtype}{DW\_AT\_type}(reference to 10$)
\livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(1)
\livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(1)
-21\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type} ! anonymous type for F2
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("F3")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 11\$)
-22\$: \livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type} ! anonymous type for F4
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 20\$)
- \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 11\$)
- \livelink{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}(0)
- \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}(1)
- \livelink{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride}(2)
- \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}(4) \addtoindexx{bit size attribute}
-23\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type} ! anonymous type for V
- \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}(39) \addtoindexx{bit size attribute}
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("F1")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 10\$)
- \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}(0) ! may be omitted
- \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}(1) ! may be omitted
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("F2")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 21\$)
- \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}(1)
- \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}(32) ! may be omitted
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("F4")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 22\$)
- \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}(33)
- \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}(4) ! may be omitted
+21\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type} ! anonymous type for F2
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("F3")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
+22\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type} ! anonymous type for F4
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 20\$)
+ \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
+ \livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(0)
+ \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(1)
+ \livelink{chap:DWATbitstride}{DW\_AT\_bit\_stride}(2)
+ \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(4) \addtoindexx{bit size attribute}
+23\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type} ! anonymous type for V
+ \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(39) \addtoindexx{bit size attribute}
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("F1")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 10\$)
+ \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(0) ! may be omitted
+ \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(1) ! may be omitted
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("F2")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 21\$)
+ \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(1)
+ \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(32) ! may be omitted
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("F4")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 22\$)
+ \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(33)
+ \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(4) ! may be omitted
\end{alltt}
\end{dwflisting}
\caption{Packed record example: DWARF description}
\figurepart{2}{2}
\begin{dwflisting}
\begin{alltt}
- \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("F7")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 20\$) ! type T
- \livelink{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}(37)
- \livelink{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}(2) \addtoindexx{bit size attribute} ! may be omitted
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("V")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 23\$)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("F7")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 20\$) ! type T
+ \livelink{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}(37)
+ \livelink{chap:DWATbitsize}{DW\_AT\_bit\_size}(2) \addtoindexx{bit size attribute} ! may be omitted
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("V")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 23\$)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
...
\end{alltt}
\end{dwflisting}
\begin{dwflisting}
\begin{alltt}
-1\$: \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("int")
+1\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("int")
...
-2\$: \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("float")
+2\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("float")
...
-6\$: \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- ! no \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute
+6\$: \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ ! no \livelink{chap:DWATname}{DW\_AT\_name} attribute
7\$:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("i")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} ...
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("i")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+ \livelink{chap:DWATlocation}{DW\_AT\_location} ...
...
-10\$: \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("A")
-20\$: \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("B")
-30\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("j")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} ...
+10\$: \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ \livelink{chap:DWATname}{DW\_AT\_name}("A")
+20\$: \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ \livelink{chap:DWATname}{DW\_AT\_name}("B")
+30\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("j")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+ \livelink{chap:DWATlocation}{DW\_AT\_location} ...
...
-34\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("myfunc")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
+34\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("myfunc")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
...
-36\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("myfunc")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 2\$)
+36\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("myfunc")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 2\$)
...
-38\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("myfunc2")
- \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} ...
- \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} ...
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
+38\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("myfunc2")
+ \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} ...
+ \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} ...
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
...
\end{alltt}
\end{dwflisting}
\figurepart{2}{2}
\begin{dwflisting}
\begin{alltt}
-40\$: \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Y")
- \livelink{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration} ! (1) using-declaration
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to 30\$)
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("foo")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} ...
+40\$: \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ \livelink{chap:DWATname}{DW\_AT\_name}("Y")
+ \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration} ! (1) using-declaration
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 30\$)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("foo")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+ \livelink{chap:DWATlocation}{DW\_AT\_location} ...
...
- \livelink{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration} ! (2) using declaration
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to 30\$)
- \livelink{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration} ! (3) namespace alias
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Foo")
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to 20\$)
- \livelink{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration} ! (4) using declaration
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to 34\$) ! - part 1
- \livelink{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration} ! (4) using declaration
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to 36\$) ! - part 2
- \livelink{chap:DWTAGimportedmodule}{DW\-\_TAG\-\_imported\-\_module} ! (5) using directive
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to 20\$)
- \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- \livelink{chap:DWATextension}{DW\-\_AT\-\_extension}(reference to 10\$)
- \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace}
- \livelink{chap:DWATextension}{DW\-\_AT\-\_extension}(reference to 20\$)
- \livelink{chap:DWTAGimportedmodule}{DW\-\_TAG\-\_imported\-\_module} ! (6) using directive
- \livelink{chap:DWATimport}{DW\-\_AT\-\_import}(reference to 40\$)
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("k")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} ...
+ \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration} ! (2) using declaration
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 30\$)
+ \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration} ! (3) namespace alias
+ \livelink{chap:DWATname}{DW\_AT\_name}("Foo")
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 20\$)
+ \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration} ! (4) using declaration
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 34\$) ! - part 1
+ \livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration} ! (4) using declaration
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 36\$) ! - part 2
+ \livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module} ! (5) using directive
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 20\$)
+ \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ \livelink{chap:DWATextension}{DW\_AT\_extension}(reference to 10\$)
+ \livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace}
+ \livelink{chap:DWATextension}{DW\_AT\_extension}(reference to 20\$)
+ \livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module} ! (6) using directive
+ \livelink{chap:DWATimport}{DW\_AT\_import}(reference to 40\$)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("k")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+ \livelink{chap:DWATlocation}{DW\_AT\_location} ...
...
-60\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATspecification}{DW\-\_AT\-\_specification}(reference to 34\$)
- \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} ...
- \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} ...
+60\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATspecification}{DW\_AT\_specification}(reference to 34\$)
+ \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc} ...
+ \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc} ...
...
\end{alltt}
\end{dwflisting}
\figurepart{1}{2}
\begin{dwflisting}
\begin{alltt}
-1\$: \livelink{chap:DWTAGunspecifiedtype}{DW\-\_TAG\-\_unspecified\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("void")
+1\$: \livelink{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("void")
...
-2\$: \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("int")
+2\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("int")
...
-3\$: \livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("A")
+3\$: \livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("A")
...
-4\$: \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 3\$)
+4\$: \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
...
-5\$: \livelink{chap:DWTAGconsttype}{DW\-\_TAG\-\_const\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 3\$)
+5\$: \livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
...
-6\$: \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 5\$)
+6\$: \livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 5\$)
...
-7\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("func1")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
- \livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}(reference to 8\$) \addtoindexx{object pointer attribute}
+7\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATdeclaration}{DW\_AT\_declaration}
+ \livelink{chap:DWATname}{DW\_AT\_name}("func1")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+ \livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}(reference to 8\$) \addtoindexx{object pointer attribute}
! References a formal parameter in this
! member function
...
\figurepart{2}{2}
\begin{dwflisting}
\begin{alltt}
-8\$: \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}(true)
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("this")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 4\$)
+8\$: \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATartificial}{DW\_AT\_artificial}(true)
+ \livelink{chap:DWATname}{DW\_AT\_name}("this")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 4\$)
! Makes type of 'this' as 'A*' =>
! func1 has not been marked const
! or volatile
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} ...
+ \livelink{chap:DWATlocation}{DW\_AT\_location} ...
...
-9\$: \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}(x1)
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 2\$)
+9\$: \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}(x1)
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 2\$)
...
-10\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("func2")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
- \livelink{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}(reference to 11\$) \addtoindexx{object pointer attribute}
+10\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATdeclaration}{DW\_AT\_declaration}
+ \livelink{chap:DWATname}{DW\_AT\_name}("func2")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+ \livelink{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}(reference to 11\$) \addtoindexx{object pointer attribute}
! References a formal parameter in this
! member function
...
-11\$: \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial}(true)
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("this")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 6\$)
+11\$: \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATartificial}{DW\_AT\_artificial}(true)
+ \livelink{chap:DWATname}{DW\_AT\_name}("this")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 6\$)
! Makes type of 'this' as 'A const*' =>
! func2 marked as const
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location} ...
+ \livelink{chap:DWATlocation}{DW\_AT\_location} ...
...
-12\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("func3")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
+12\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATdeclaration}{DW\_AT\_declaration}
+ \livelink{chap:DWATname}{DW\_AT\_name}("func3")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
...
! No object pointer reference formal parameter
! implies func3 is static
-13\$: \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}(x3)
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 2\$)
+13\$: \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}(x3)
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 2\$)
...
\end{alltt}
\end{dwflisting}
\endfoot
\hline
\endlastfoot
-\livelink{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc}&LEB128(0x239)&0x2, 0xb9, 0x04 \\
+\livelink{chap:DWLNSadvancepc}{DW\_LNS\_advance\_pc}&LEB128(0x239)&0x2, 0xb9, 0x04 \\
SPECIAL(2, 0)& &0xb \\
SPECIAL(2, 3)& &0x38 \\
SPECIAL(1, 8)& &0x82 \\
SPECIAL(1, 7)& &0x73 \\
-\livelink{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc}&LEB128(2)&0x2, 0x2 \\
-\livelink{chap:DWLNEendsequence}{DW\-\_LNE\-\_end\-\_sequence} &&0x0, 0x1, 0x1 \\
+\livelink{chap:DWLNSadvancepc}{DW\_LNS\_advance\_pc}&LEB128(2)&0x2, 0x2 \\
+\livelink{chap:DWLNEendsequence}{DW\_LNE\_end\_sequence} &&0x0, 0x1, 0x1 \\
\end{longtable}
\end{centering}
\endfoot
\hline
\endlastfoot
-\livelink{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc}&0x239&0x9, 0x39, 0x2 \\
+\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x239&0x9, 0x39, 0x2 \\
SPECIAL(2, 0)&& 0xb \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc}&0x3&0x9, 0x3, 0x0 \\
+\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x3&0x9, 0x3, 0x0 \\
SPECIAL(2, 0)&&0xb \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc}&0x8&0x9, 0x8, 0x0 \\
+\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x8&0x9, 0x8, 0x0 \\
SPECIAL(1, 0)&& 0xa \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc}&0x7&0x9, 0x7, 0x0 \\
+\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x7&0x9, 0x7, 0x0 \\
SPECIAL(1, 0) && 0xa \\
-\livelink{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc}&0x2&0x9, 0x2, 0x0 \\
-\livelink{chap:DWLNEendsequence}{DW\-\_LNE\-\_end\-\_sequence}&&0x0, 0x1, 0x1 \\
+\livelink{chap:DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}&0x2&0x9, 0x2, 0x0 \\
+\livelink{chap:DWLNEendsequence}{DW\_LNE\_end\_sequence}&&0x0, 0x1, 0x1 \\
\end{longtable}
\end{centering}
cie+12&4&code\_alignment\_factor, \textless caf \textgreater \\
cie+13&-4&data\_alignment\_factor, \textless daf \textgreater \\
cie+14&8&R8 is the return addr. \\
-cie+15&\livelink{chap:DWCFAdefcfa}{DW\-\_CFA\-\_def\-\_cfa} (7, 0)&CFA = [R7]+0 \\
-cie+18&\livelink{chap:DWCFAsamevalue}{DW\-\_CFA\-\_same\-\_value} (0)&R0 not modified (=0) \\
-cie+20&\livelink{chap:DWCFAundefined}{DW\-\_CFA\-\_undefined} (1)&R1 scratch \\
-cie+22&\livelink{chap:DWCFAundefined}{DW\-\_CFA\-\_undefined} (2)&R2 scratch \\
-cie+24&\livelink{chap:DWCFAundefined}{DW\-\_CFA\-\_undefined} (3)&R3 scratch \\
-cie+26&\livelink{chap:DWCFAsamevalue}{DW\-\_CFA\-\_same\-\_value} (4)&R4 preserve \\
-cie+28&\livelink{chap:DWCFAsamevalue}{DW\-\_CFA\-\_same\-\_value} (5)&R5 preserve \\
-cie+30&\livelink{chap:DWCFAsamevalue}{DW\-\_CFA\-\_same\-\_value} (6)&R6 preserve \\
-cie+32&\livelink{chap:DWCFAsamevalue}{DW\-\_CFA\-\_same\-\_value} (7)&R7 preserve \\
-cie+34&\livelink{chap:DWCFAregister}{DW\-\_CFA\-\_register} (8, 1)&R8 is in R1 \\
-cie+37&\livelink{chap:DWCFAnop}{DW\-\_CFA\-\_nop} &padding \\
-cie+38&\livelink{chap:DWCFAnop}{DW\-\_CFA\-\_nop} &padding \\
-cie+39& \livelink{chap:DWCFAnop}{DW\-\_CFA\-\_nop}&padding \\
+cie+15&\livelink{chap:DWCFAdefcfa}{DW\_CFA\_def\_cfa} (7, 0)&CFA = [R7]+0 \\
+cie+18&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (0)&R0 not modified (=0) \\
+cie+20&\livelink{chap:DWCFAundefined}{DW\_CFA\_undefined} (1)&R1 scratch \\
+cie+22&\livelink{chap:DWCFAundefined}{DW\_CFA\_undefined} (2)&R2 scratch \\
+cie+24&\livelink{chap:DWCFAundefined}{DW\_CFA\_undefined} (3)&R3 scratch \\
+cie+26&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (4)&R4 preserve \\
+cie+28&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (5)&R5 preserve \\
+cie+30&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (6)&R6 preserve \\
+cie+32&\livelink{chap:DWCFAsamevalue}{DW\_CFA\_same\_value} (7)&R7 preserve \\
+cie+34&\livelink{chap:DWCFAregister}{DW\_CFA\_register} (8, 1)&R8 is in R1 \\
+cie+37&\livelink{chap:DWCFAnop}{DW\_CFA\_nop} &padding \\
+cie+38&\livelink{chap:DWCFAnop}{DW\_CFA\_nop} &padding \\
+cie+39& \livelink{chap:DWCFAnop}{DW\_CFA\_nop}&padding \\
cie+40 && \\
\end{longtable}
\end{centering}
fde+4&cie&CIE\_ptr \\
fde+8&foo&initial\_location \\
fde+12&84&address\_range \\
-fde+16&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(1)&instructions \\
-fde+17&\livelink{chap:DWCFAdefcfaoffset}{DW\-\_CFA\-\_def\-\_cfa\-\_offset}(12)& \textless fs\textgreater \\
-fde+19&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(1)&4/\textless caf\textgreater \\
-fde+20&\livelink{chap:DWCFAoffset}{DW\-\_CFA\-\_offset}(8,1)&-4/\textless daf\textgreater (2nd parameter) \\
-fde+22&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(1)& \\
-fde+23&\livelink{chap:DWCFAoffset}{DW\-\_CFA\-\_offset}(6,2)&-8/\textless daf\textgreater (2nd parameter) \\
-fde+25&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(1) & \\
-fde+26&\livelink{chap:DWCFAdefcfaregister}{DW\-\_CFA\-\_def\-\_cfa\-\_register}(6) & \\
-fde+28&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(1) & \\
-fde+29&\livelink{chap:DWCFAoffset}{DW\-\_CFA\-\_offset}(4,3)&-12/\textless daf\textgreater (2nd parameter) \\
-fde+31&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(12)&44/\textless caf\textgreater \\
-fde+32&\livelink{chap:DWCFArestore}{DW\-\_CFA\-\_restore}(4)& \\
-fde+33&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(1) & \\
-fde+34&\livelink{chap:DWCFArestore}{DW\-\_CFA\-\_restore}(6) & \\
-fde+35&\livelink{chap:DWCFAdefcfaregister}{DW\-\_CFA\-\_def\-\_cfa\-\_register}(7) & \\
-fde+37&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(1) & \\
-fde+38&\livelink{chap:DWCFArestore}{DW\-\_CFA\-\_restore}(8) &\\
-fde+39&\livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc}(1) &\\
-fde+40&\livelink{chap:DWCFAdefcfaoffset}{DW\-\_CFA\-\_def\-\_cfa\-\_offset}(0) &\\
-fde+42&\livelink{chap:DWCFAnop}{DW\-\_CFA\-\_nop}&padding \\
-fde+43&\livelink{chap:DWCFAnop}{DW\-\_CFA\-\_nop}&padding \\
+fde+16&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1)&instructions \\
+fde+17&\livelink{chap:DWCFAdefcfaoffset}{DW\_CFA\_def\_cfa\_offset}(12)& \textless fs\textgreater \\
+fde+19&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1)&4/\textless caf\textgreater \\
+fde+20&\livelink{chap:DWCFAoffset}{DW\_CFA\_offset}(8,1)&-4/\textless daf\textgreater (2nd parameter) \\
+fde+22&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1)& \\
+fde+23&\livelink{chap:DWCFAoffset}{DW\_CFA\_offset}(6,2)&-8/\textless daf\textgreater (2nd parameter) \\
+fde+25&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) & \\
+fde+26&\livelink{chap:DWCFAdefcfaregister}{DW\_CFA\_def\_cfa\_register}(6) & \\
+fde+28&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) & \\
+fde+29&\livelink{chap:DWCFAoffset}{DW\_CFA\_offset}(4,3)&-12/\textless daf\textgreater (2nd parameter) \\
+fde+31&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(12)&44/\textless caf\textgreater \\
+fde+32&\livelink{chap:DWCFArestore}{DW\_CFA\_restore}(4)& \\
+fde+33&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) & \\
+fde+34&\livelink{chap:DWCFArestore}{DW\_CFA\_restore}(6) & \\
+fde+35&\livelink{chap:DWCFAdefcfaregister}{DW\_CFA\_def\_cfa\_register}(7) & \\
+fde+37&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) & \\
+fde+38&\livelink{chap:DWCFArestore}{DW\_CFA\_restore}(8) &\\
+fde+39&\livelink{chap:DWCFAadvanceloc}{DW\_CFA\_advance\_loc}(1) &\\
+fde+40&\livelink{chap:DWCFAdefcfaoffset}{DW\_CFA\_def\_cfa\_offset}(0) &\\
+fde+42&\livelink{chap:DWCFAnop}{DW\_CFA\_nop}&padding \\
+fde+43&\livelink{chap:DWCFAnop}{DW\_CFA\_nop}&padding \\
fde+44 && \\
\end{longtable}
\end{centering}
! Abstract instance for OUTER
! \addtoindexx{abstract instance!example}
OUTER.AI.1.1:
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER")
- \livelink{chap:DWATinline}{DW\-\_AT\-\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\-\_INL\-\_declared\-\_inlined})
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER")
+ \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined})
! No low/high PCs
OUTER.AI.1.2:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER\_FORMAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_FORMAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
OUTER.AI.1.3:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER\_LOCAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_LOCAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
!
! Abstract instance for INNER
!
INNER.AI.1.1:
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER")
- \livelink{chap:DWATinline}{DW\-\_AT\-\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\-\_INL\-\_declared\-\_inlined})
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER")
+ \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined})
! No low/high PCs
INNER.AI.1.2:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER\_FORMAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_FORMAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
INNER.AI.1.3:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER\_LOCAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_LOCAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
...
0
- ! No \livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine} (concrete instance)
+ ! No \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine} (concrete instance)
! for INNER corresponding to calls of INNER
...
0
! Concrete instance for call "OUTER(7)"
! \addtoindexx{concrete instance!example}
OUTER.CI.1.1:
- \livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine}
+ \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.1.1)
- \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}(...)
- \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.1.1)
+ \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
+ \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
OUTER.CI.1.2:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.1.2)
- \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}(7)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.1.2)
+ \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(7)
OUTER.CI.1.3:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.1.3)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.1.3)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
!
- ! No \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram} (abstract instance) for INNER
+ ! No \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram} (abstract instance) for INNER
!
! Concrete instance for call INNER(OUTER\_LOCAL)
!
INNER.CI.1.1:
- \livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine}
+ \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to INNER.AI.1.1)
- \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}(...)
- \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}(...)
- \livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to INNER.AI.1.1)
+ \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
+ \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
+ \livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}(...)
INNER.CI.1.2:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to INNER.AI.1.2)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to INNER.AI.1.2)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
INNER.CI.1.3:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to INNER.AI.1.3)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to INNER.AI.1.3)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
...
0
! Another concrete instance of INNER within OUTER
that in
Figure \refersec{fig:inliningexample1abstractinstance}
in that INNER lacks a
-\livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute
+\livelink{chap:DWATinline}{DW\_AT\_inline} attribute
and therefore is not a distinct abstract instance. INNER
is merely an out\dash of\dash line routine that is part of OUTER\textquoteright s
abstract instance. This is reflected in the Figure by
concrete out\dash of\dash line subprogram. Because INNER is cloned
for each inline expansion of OUTER, only the invariant
attributes of INNER
-(for example, \livelink{chap:DWATname}{DW\-\_AT\-\_name}) are specified
+(for example, \livelink{chap:DWATname}{DW\_AT\_name}) are specified
in the abstract instance of OUTER, and the low\dash level,
\addtoindexx{abstract instance!example}
instance\dash specific attributes of INNER (for example,
-\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}) are specified in
+\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}) are specified in
each concrete instance of OUTER.
\addtoindexx{concrete instance!example}
The several calls of INNER within OUTER are compiled as normal
! Abstract instance for OUTER
! \addtoindex{abstract instance}
OUTER.AI.2.1:
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER")
- \livelink{chap:DWATinline}{DW\-\_AT\-\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\-\_INL\-\_declared\-\_inlined})
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER")
+ \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined})
! No low/high PCs
OUTER.AI.2.2:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER\_FORMAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_FORMAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
OUTER.AI.2.3:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER\_LOCAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_LOCAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
!
! Nested out-of-line INNER subprogram
!
OUTER.AI.2.4:
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER")
- ! No \livelink{chap:DWATinline}{DW\-\_AT\-\_inline}
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER")
+ ! No \livelink{chap:DWATinline}{DW\_AT\_inline}
! No low/high PCs, frame\_base, etc.
OUTER.AI.2.5:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER\_FORMAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_FORMAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
OUTER.AI.2.6:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER\_LOCAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_LOCAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
...
0
! Concrete instance for call "OUTER(7)"
!
OUTER.CI.2.1:
- \livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine}
+ \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.2.1)
- \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}(...)
- \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.1)
+ \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
+ \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
OUTER.CI.2.2:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.2.2)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.2)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
OUTER.CI.2.3:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.2.3)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.3)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
!
! Nested out-of-line INNER subprogram
!
OUTER.CI.2.4:
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.2.4)
- \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}(...)
- \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}(...)
- \livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}(...)
- \livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.4)
+ \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
+ \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
+ \livelink{chap:DWATframebase}{DW\_AT\_frame\_base}(...)
+ \livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}(...)
OUTER.CI.2.5:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.2.5)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.2.5)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
OUTER.CI.2.6:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AT.2.6)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AT.2.6)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
...
0
...
complement of attributes that would be expected for a
normal subprogram.
While attributes such as
-\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc},
-\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc},
-\livelink{chap:DWATlocation}{DW\-\_AT\-\_location},
+\livelink{chap:DWATlowpc}{DW\_AT\_low\_pc},
+\livelink{chap:DWAThighpc}{DW\_AT\_high\_pc},
+\livelink{chap:DWATlocation}{DW\_AT\_location},
and so on, typically are omitted
\addtoindexx{high PC attribute}
from
! Abstract instance for OUTER
! \addtoindexx{abstract instance!example}
OUTER.AI.3.1:
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER")
- \livelink{chap:DWATinline}{DW\-\_AT\-\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\-\_INL\-\_declared\-\_inlined})
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER")
+ \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLdeclaredinlined}{DW\_INL\_declared\_inlined})
! No low/high PCs
OUTER.AI.3.2:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER\_FORMAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_FORMAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
OUTER.AI.3.3:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("OUTER\_LOCAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("OUTER\_LOCAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
! No location
!
! Normal INNER
!
OUTER.AI.3.4:
- \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER")
- \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}(...)
- \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}(...)
- \livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}(...)
- \livelink{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}(...)
+ \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER")
+ \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
+ \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
+ \livelink{chap:DWATframebase}{DW\_AT\_frame\_base}(...)
+ \livelink{chap:DWATstaticlink}{DW\_AT\_static\_link}(...)
OUTER.AI.3.5:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER\_FORMAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_FORMAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
OUTER.AI.3.6:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("INNER\_LOCAL")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to integer)
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("INNER\_LOCAL")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to integer)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
...
0
...
! Concrete instance for call "OUTER(7)"
! \addtoindexx{concrete instance!example}
OUTER.CI.3.1:
- \livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine}
+ \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.3.1)
- \livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}(...)
- \livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}(...)
- \livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}(...)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.3.1)
+ \livelink{chap:DWATlowpc}{DW\_AT\_low\_pc}(...)
+ \livelink{chap:DWAThighpc}{DW\_AT\_high\_pc}(...)
+ \livelink{chap:DWATframebase}{DW\_AT\_frame\_base}(...)
OUTER.CI.3.2:
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.3.2)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.3.2)
! No type
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
OUTER.CI.3.3:
- \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
+ \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
! No name
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to OUTER.AI.3.3)
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to OUTER.AI.3.3)
! No type
- \livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(...)
- ! No \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram} for "INNER"
+ \livelink{chap:DWATlocation}{DW\_AT\_location}(...)
+ ! No \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram} for "INNER"
...
0
\end{alltt}
\begin{alltt}
! For variable mass
!
-1\$: \livelink{chap:DWTAGconsttype}{DW\-\_TAG\-\_const\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "double")
-2\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("mass")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
- \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr}(true)
- \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}(9.8)
+1\$: \livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "double")
+2\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("mass")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+ \livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr}(true)
+ \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(9.8)
! Abstract instance for square
!
-10\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("square")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
- \livelink{chap:DWATinline}{DW\-\_AT\-\_inline}(\livelink{chap:DWINLinlined}{DW\-\_INL\-\_inlined})
-11\$: \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("x")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
+10\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("square")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+ \livelink{chap:DWATinline}{DW\_AT\_inline}(\livelink{chap:DWINLinlined}{DW\_INL\_inlined})
+11\$: \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("x")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
! Concrete instance for square(9)
! \addtoindexx{concrete instance!example}
-20\$: \livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine}
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to 10\$)
- \livelink{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr}(present)
- \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}(81)
- \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}(reference to 11\$)
- \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}(9)
+20\$: \livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to 10\$)
+ \livelink{chap:DWATconstexpr}{DW\_AT\_const\_expr}(present)
+ \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(81)
+ \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}(reference to 11\$)
+ \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(9)
! Anonymous array type for arr
!
-30\$: \livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "float")
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}(324) ! 81*4
- \livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type}
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
- \livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}(reference to 20\$)
+30\$: \livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "float")
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(324) ! 81*4
+ \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+ \livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(reference to 20\$)
! Variable arr
!
-40\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("arr")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 30\$)
+40\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("arr")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 30\$)
\end{alltt}
\end{dwflisting}
\caption{Constant expressions: DWARF description}
! DWARF description
!
-1\$: \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("char16\_t")
- \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}(\livelink{chap:DWATEUTF}{DW\-\_ATE\-\_UTF})
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}(2)
-2\$: \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("char32\_t")
- \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}(\livelink{chap:DWATEUTF}{DW\-\_ATE\-\_UTF})
- \livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}(4)
-3\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("chr\_a")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 1\$)
-4\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("chr\_b")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 2\$)
+1\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("char16\_t")
+ \livelink{chap:DWATencoding}{DW\_AT\_encoding}(\livelink{chap:DWATEUTF}{DW\_ATE\_UTF})
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(2)
+2\$: \livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("char32\_t")
+ \livelink{chap:DWATencoding}{DW\_AT\_encoding}(\livelink{chap:DWATEUTF}{DW\_ATE\_UTF})
+ \livelink{chap:DWATbytesize}{DW\_AT\_byte\_size}(4)
+3\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("chr\_a")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 1\$)
+4\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("chr\_b")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 2\$)
\end{alltt}
\end{dwflisting}
\caption{Unicode character example: DWARF description}
\begin{alltt}
! DWARF description
!
-11\$: \livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("E")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
- \livelink{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class}(present)
-12\$: \livelink{chap:DWTAGenumerator}{DW\-\_TAG\-\_enumerator}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("E1")
- \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}(0)
+11\$: \livelink{chap:DWTAGenumerationtype}{DW\_TAG\_enumeration\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("E")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+ \livelink{chap:DWATenumclass}{DW\_AT\_enum\_class}(present)
+12\$: \livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator}
+ \livelink{chap:DWATname}{DW\_AT\_name}("E1")
+ \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(0)
13\$:
- \livelink{chap:DWTAGenumerator}{DW\-\_TAG\-\_enumerator}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("E2")
- \livelink{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}(100)
-14\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("e1")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 11\$)
+ \livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator}
+ \livelink{chap:DWATname}{DW\_AT\_name}("E2")
+ \livelink{chap:DWATconstvalue}{DW\_AT\_const\_value}(100)
+14\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("e1")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
\end{alltt}
\end{dwflisting}
\caption{Type-safe enumeration example: DWARF description}
\begin{alltt}
! DWARF description
!
-11\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("wrapper")
-12\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("T")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
-13\$ \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("comp")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 12\$)
-14\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("obj")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 11\$)
+11\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("wrapper")
+12\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("T")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+13\$ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("comp")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 12\$)
+14\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("obj")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
\end{alltt}
\end{dwflisting}
\caption{C++ template example \#1: DWARF description}
The actual type of the component comp is int, but in the DWARF
the type references the
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
+\livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
for T, which in turn references int. This implies that in the
original template comp was of type T and that was replaced
with int in the instance. There exist situations where it is
\begin{alltt}
! DWARF description
!
-11\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("wrapper")
-12\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("T")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
-13\$ \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("comp")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 12\$)
-14\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("obj")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 11\$)
-21\$: \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("consume")
-22\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("U")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
-23\$: \livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("formal")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 11\$)
+11\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("wrapper")
+12\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("T")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+13\$ \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("comp")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 12\$)
+14\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("obj")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
+21\$: \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
+ \livelink{chap:DWATname}{DW\_AT\_name}("consume")
+22\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("U")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+23\$: \livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("formal")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 11\$)
\end{alltt}
\end{dwflisting}
\caption{C++ template example \#2: DWARF description}
\label{fig:ctemplateexample2dwarf}
\end{figure}
-In the \livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram}
+In the \livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram}
entry for the instance of consume, U is described as int.
The type of formal is \texttt{wrapper\textless U\textgreater} in
the source. DWARF only represents instantiations of templates;
a template parameter nor a template instantiation. The type
of formal is described as \texttt{wrapper\textless int\textgreater},
the instantiation of \texttt{wrapper\textless U\textgreater},
-in the \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute at
+in the \livelink{chap:DWATtype}{DW\_AT\_type} attribute at
23\$.
There is no
description of the relationship between template type parameter
\begin{alltt}
! DWARF representation for variable 'b'
!
-20\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Alpha")
-21\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("T")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "long")
-22\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("U")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "long")
-23\$: \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("tango")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 21\$)
-24\$: \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("uniform")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 22\$)
-25\$: \livelink{chap:DWTAGtemplatealias}{DW\-\_TAG\-\_template\-\_alias}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Beta")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 20\$)
-26\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("V")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "long")
-27\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("b")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 25\$)
+20\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("Alpha")
+21\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("T")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "long")
+22\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("U")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "long")
+23\$: \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("tango")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 21\$)
+24\$: \livelink{chap:DWTAGmember}{DW\_TAG\_member}
+ \livelink{chap:DWATname}{DW\_AT\_name}("uniform")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 22\$)
+25\$: \livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias}
+ \livelink{chap:DWATname}{DW\_AT\_name}("Beta")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 20\$)
+26\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("V")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "long")
+27\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("b")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 25\$)
\end{alltt}
\end{dwflisting}
\caption{C++ template alias example \#1: DWARF description}
\begin{alltt}
! DWARF representation for X<Y<int>>
!
-30\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Y")
-31\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("TY")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
-32\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("X")
-33\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("TX")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 30\$)
+30\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("Y")
+31\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("TY")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+32\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("X")
+33\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("TX")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 30\$)
! DWARF representation for X<Z<int>>
!
-40\$: \livelink{chap:DWTAGtemplatealias}{DW\-\_TAG\-\_template\-\_alias}
+40\$: \livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias}
using Z = Y<int>;
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("Z")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 30\$)
-41\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("T")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to "int")
-42\$: \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("X")
-43\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("TX")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to 40\$)
+ \livelink{chap:DWATname}{DW\_AT\_name}("Z")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 30\$)
+41\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("T")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to "int")
+42\$: \livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type}
+ \livelink{chap:DWATname}{DW\_AT\_name}("X")
+43\$: \livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+ \livelink{chap:DWATname}{DW\_AT\_name}("TX")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to 40\$)
! Note that 32\$ and 42\$ are actually the same type
!
-50\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("y")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to \$32)
-51\$: \livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable}
- \livelink{chap:DWATname}{DW\-\_AT\-\_name}("z")
- \livelink{chap:DWATtype}{DW\-\_AT\-\_type}(reference to \$42)
+50\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("y")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to \$32)
+51\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
+ \livelink{chap:DWATname}{DW\_AT\_name}("z")
+ \livelink{chap:DWATtype}{DW\_AT\_type}(reference to \$42)
\end{alltt}
\end{dwflisting}
\caption{C++ template alias example \#2: DWARF description}
\label{tab:tagnames}
\simplerule[6in]
\autocols[0pt]{c}{2}{l}{
-\livelink{chap:DWTAGaccessdeclaration}{DW\-\_TAG\-\_access\-\_declaration},
-\livelink{chap:DWTAGarraytype}{DW\-\_TAG\-\_array\-\_type},
-\livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type},
-\livelink{chap:DWTAGcatchblock}{DW\-\_TAG\-\_catch\-\_block},
-\livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type},
-\livelink{chap:DWTAGcommonblock}{DW\-\_TAG\-\_common\-\_block},
-\livelink{chap:DWTAGcommoninclusion}{DW\-\_TAG\-\_common\-\_inclusion},
-\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit},
-\livelink{chap:DWTAGcondition}{DW\-\_TAG\-\_condition},
-\livelink{chap:DWTAGconsttype}{DW\-\_TAG\-\_const\-\_type},
-\livelink{chap:DWTAGconstant}{DW\-\_TAG\-\_constant},
-\livelink{chap:DWTAGdwarfprocedure}{DW\-\_TAG\-\_dwarf\-\_procedure},
-\livelink{chap:DWTAGentrypoint}{DW\-\_TAG\-\_entry\-\_point},
-\livelink{chap:DWTAGenumerationtype}{DW\-\_TAG\-\_enumeration\-\_type},
-\livelink{chap:DWTAGenumerator}{DW\-\_TAG\-\_enumerator},
-\livelink{chap:DWTAGfiletype}{DW\-\_TAG\-\_file\-\_type},
-\livelink{chap:DWTAGformalparameter}{DW\-\_TAG\-\_formal\-\_parameter},
-\livelink{chap:DWTAGfriend}{DW\-\_TAG\-\_friend},
-\livelink{chap:DWTAGimporteddeclaration}{DW\-\_TAG\-\_imported\-\_declaration},
-\livelink{chap:DWTAGimportedmodule}{DW\-\_TAG\-\_imported\-\_module},
-\livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit},
-\livelink{chap:DWTAGinheritance}{DW\-\_TAG\-\_inheritance},
-\livelink{chap:DWTAGinlinedsubroutine}{DW\-\_TAG\-\_inlined\-\_subroutine},
-\livelink{chap:DWTAGinterfacetype}{DW\-\_TAG\-\_interface\-\_type},
-\livelink{chap:DWTAGlabel}{DW\-\_TAG\-\_label},
-\livelink{chap:DWTAGlexicalblock}{DW\-\_TAG\-\_lexical\-\_block},
-\livelink{chap:DWTAGmodule}{DW\-\_TAG\-\_module},
-\livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member},
-\livelink{chap:DWTAGnamelist}{DW\-\_TAG\-\_namelist},
-\livelink{chap:DWTAGnamelistitem}{DW\-\_TAG\-\_namelist\-\_item},
-\livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace},
-\livelink{chap:DWTAGpackedtype}{DW\-\_TAG\-\_packed\-\_type},
-\livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit},
-\livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type},
-\livelink{chap:DWTAGptrtomembertype}{DW\-\_TAG\-\_ptr\-\_to\-\_member\-\_type},
-\livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type},
-\livelink{chap:DWTAGrestricttype}{DW\-\_TAG\-\_restrict\-\_type},
-\livelink{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type},
-\livelink{chap:DWTAGsettype}{DW\-\_TAG\-\_set\-\_type},
-\livelink{chap:DWTAGsharedtype}{DW\-\_TAG\-\_shared\-\_type},
-\livelink{chap:DWTAGstringtype}{DW\-\_TAG\-\_string\-\_type},
-\livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type},
-\livelink{chap:DWTAGsubprogram}{DW\-\_TAG\-\_subprogram},
-\livelink{chap:DWTAGsubrangetype}{DW\-\_TAG\-\_subrange\-\_type},
-\livelink{chap:DWTAGsubroutinetype}{DW\-\_TAG\-\_subroutine\-\_type},
-\livelink{chap:DWTAGtemplatealias}{DW\-\_TAG\-\_template\-\_alias},
-\livelink{chap:DWTAGtemplatetypeparameter}{DW\-\_TAG\-\_template\-\_type\-\_parameter},
-\livelink{chap:DWTAGtemplatevalueparameter}{DW\-\_TAG\-\_template\-\_value\-\_parameter},
-\livelink{chap:DWTAGthrowntype}{DW\-\_TAG\-\_thrown\-\_type},
-\livelink{chap:DWTAGtryblock}{DW\-\_TAG\-\_try\-\_block},
-\livelink{chap:DWTAGtypedef}{DW\-\_TAG\-\_typedef},
-\livelink{chap:DWTAGtypeunit}{DW\-\_TAG\-\_type\-\_unit},
-\livelink{chap:DWTAGuniontype}{DW\-\_TAG\-\_union\-\_type},
-\livelink{chap:DWTAGunspecifiedparameters}{DW\-\_TAG\-\_unspecified\-\_parameters},
-\livelink{chap:DWTAGunspecifiedtype}{DW\-\_TAG\-\_unspecified\-\_type},
-\livelink{chap:DWTAGvariable}{DW\-\_TAG\-\_variable},
-\livelink{chap:DWTAGvariant}{DW\-\_TAG\-\_variant},
-\livelink{chap:DWTAGvariantpart}{DW\-\_TAG\-\_variant\-\_part},
-\livelink{chap:DWTAGvolatiletype}{DW\-\_TAG\-\_volatile\-\_type},
-\livelink{chap:DWTAGwithstmt}{DW\-\_TAG\-\_with\-\_stmt},
+\livelink{chap:DWTAGaccessdeclaration}{DW\_TAG\_access\_declaration},
+\livelink{chap:DWTAGarraytype}{DW\_TAG\_array\_type},
+\livelink{chap:DWTAGbasetype}{DW\_TAG\_base\_type},
+\livelink{chap:DWTAGcatchblock}{DW\_TAG\_catch\_block},
+\livelink{chap:DWTAGclasstype}{DW\_TAG\_class\_type},
+\livelink{chap:DWTAGcommonblock}{DW\_TAG\_common\_block},
+\livelink{chap:DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion},
+\livelink{chap:DWTAGcompileunit}{DW\_TAG\_compile\_unit},
+\livelink{chap:DWTAGcondition}{DW\_TAG\_condition},
+\livelink{chap:DWTAGconsttype}{DW\_TAG\_const\_type},
+\livelink{chap:DWTAGconstant}{DW\_TAG\_constant},
+\livelink{chap:DWTAGdwarfprocedure}{DW\_TAG\_dwarf\_procedure},
+\livelink{chap:DWTAGentrypoint}{DW\_TAG\_entry\_point},
+\livelink{chap:DWTAGenumerationtype}{DW\_TAG\_enumeration\_type},
+\livelink{chap:DWTAGenumerator}{DW\_TAG\_enumerator},
+\livelink{chap:DWTAGfiletype}{DW\_TAG\_file\_type},
+\livelink{chap:DWTAGformalparameter}{DW\_TAG\_formal\_parameter},
+\livelink{chap:DWTAGfriend}{DW\_TAG\_friend},
+\livelink{chap:DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration},
+\livelink{chap:DWTAGimportedmodule}{DW\_TAG\_imported\_module},
+\livelink{chap:DWTAGimportedunit}{DW\_TAG\_imported\_unit},
+\livelink{chap:DWTAGinheritance}{DW\_TAG\_inheritance},
+\livelink{chap:DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine},
+\livelink{chap:DWTAGinterfacetype}{DW\_TAG\_interface\_type},
+\livelink{chap:DWTAGlabel}{DW\_TAG\_label},
+\livelink{chap:DWTAGlexicalblock}{DW\_TAG\_lexical\_block},
+\livelink{chap:DWTAGmodule}{DW\_TAG\_module},
+\livelink{chap:DWTAGmember}{DW\_TAG\_member},
+\livelink{chap:DWTAGnamelist}{DW\_TAG\_namelist},
+\livelink{chap:DWTAGnamelistitem}{DW\_TAG\_namelist\_item},
+\livelink{chap:DWTAGnamespace}{DW\_TAG\_namespace},
+\livelink{chap:DWTAGpackedtype}{DW\_TAG\_packed\_type},
+\livelink{chap:DWTAGpartialunit}{DW\_TAG\_partial\_unit},
+\livelink{chap:DWTAGpointertype}{DW\_TAG\_pointer\_type},
+\livelink{chap:DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type},
+\livelink{chap:DWTAGreferencetype}{DW\_TAG\_reference\_type},
+\livelink{chap:DWTAGrestricttype}{DW\_TAG\_restrict\_type},
+\livelink{chap:DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type},
+\livelink{chap:DWTAGsettype}{DW\_TAG\_set\_type},
+\livelink{chap:DWTAGsharedtype}{DW\_TAG\_shared\_type},
+\livelink{chap:DWTAGstringtype}{DW\_TAG\_string\_type},
+\livelink{chap:DWTAGstructuretype}{DW\_TAG\_structure\_type},
+\livelink{chap:DWTAGsubprogram}{DW\_TAG\_subprogram},
+\livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type},
+\livelink{chap:DWTAGsubroutinetype}{DW\_TAG\_subroutine\_type},
+\livelink{chap:DWTAGtemplatealias}{DW\_TAG\_template\_alias},
+\livelink{chap:DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter},
+\livelink{chap:DWTAGtemplatevalueparameter}{DW\_TAG\_template\_value\_parameter},
+\livelink{chap:DWTAGthrowntype}{DW\_TAG\_thrown\_type},
+\livelink{chap:DWTAGtryblock}{DW\_TAG\_try\_block},
+\livelink{chap:DWTAGtypedef}{DW\_TAG\_typedef},
+\livelink{chap:DWTAGtypeunit}{DW\_TAG\_type\_unit},
+\livelink{chap:DWTAGuniontype}{DW\_TAG\_union\_type},
+\livelink{chap:DWTAGunspecifiedparameters}{DW\_TAG\_unspecified\_parameters},
+\livelink{chap:DWTAGunspecifiedtype}{DW\_TAG\_unspecified\_type},
+\livelink{chap:DWTAGvariable}{DW\_TAG\_variable},
+\livelink{chap:DWTAGvariant}{DW\_TAG\_variant},
+\livelink{chap:DWTAGvariantpart}{DW\_TAG\_variant\_part},
+\livelink{chap:DWTAGvolatiletype}{DW\_TAG\_volatile\_type},
+\livelink{chap:DWTAGwithstmt}{DW\_TAG\_with\_stmt},
}
\simplerule[6in]
\end{table}
this section and not necessarily mentioned in all
contexts where they may be appropriate.
Examples include
-\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial},
+\livelink{chap:DWATartificial}{DW\_AT\_artificial},
the \livelink{chap:DWATdeclfilefilecontainingsourcedeclaration}{declaration coordinates}, and
-\livelink{chap:DWATdescription}{DW\-\_AT\-\_description},
+\livelink{chap:DWATdescription}{DW\_AT\_description},
among others.}
The debugging information entries are contained
\endfoot
\hline
\endlastfoot
-\livetarg{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin}
+\livetarg{chap:DWATabstractorigin}{DW\_AT\_abstract\_origin}
&\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} \\
-\livetarg{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility}
+\livetarg{chap:DWATaccessibility}{DW\_AT\_accessibility}
&\livelink{chap:DWATaccessibilitycandadadeclarations}{C++ and Ada declarations} \addtoindexx{Ada} \\
&\livelink{chap:DWATaccessibilitycppbaseclasses}{C++ base classes} \\
&\livelink{chap:DWATaccessibilitycppinheritedmembers}{C++ inherited members} \\
-\livetarg{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class}
+\livetarg{chap:DWATaddressclass}{DW\_AT\_address\_class}
&\livelinki{chap:DWATadressclasspointerorreferencetypes}{Pointer or reference types}{pointer or reference types} \\
&\livelinki{chap:DWATaddressclasssubroutineorsubroutinetype}{Subroutine or subroutine type}{subroutine or subroutine type} \\
-\livetarg{chap:DWATallocated}{DW\-\_AT\-\_allocated}
+\livetarg{chap:DWATallocated}{DW\_AT\_allocated}
&\livelinki{chap:DWATallocatedallocationstatusoftypes}{Allocation status of types}{allocation status of types} \\
-\livetarg{chap:DWATartificial}{DW\-\_AT\-\_artificial}
+\livetarg{chap:DWATartificial}{DW\_AT\_artificial}
&\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} \\
-\livetarg{chap:DWATassociated}{DW\-\_AT\-\_associated}
+\livetarg{chap:DWATassociated}{DW\_AT\_associated}
&\livelinki{chap:DWATassociatedassociationstatusoftypes}{Association status of types}{association status of types} \\
-\livetarg{chap:DWATbasetypes}{DW\-\_AT\-\_base\-\_types}
+\livetarg{chap:DWATbasetypes}{DW\_AT\_base\_types}
&\livelinki{chap:DWATbasetypesprimitivedatatypesofcompilationunit}{Primitive data types of compilation unit}{primitive data types of compilation unit} \\
-\livetarg{chap:DWATbinaryscale}{DW\-\_AT\-\_binary\-\_scale}
+\livetarg{chap:DWATbinaryscale}{DW\_AT\_binary\_scale}
&\livelinki{chap:DWATbinaryscalebinaryscalefactorforfixedpointtype}{Binary scale factor for fixed-point type}{binary scale factor for fixed-point type} \\
-\livetarg{chap:DWATbitoffset}{DW\-\_AT\-\_bit\-\_offset}
+\livetarg{chap:DWATbitoffset}{DW\_AT\_bit\_offset}
&\livelinki{chap:DWATbitoffsetbasetypebitlocation}{Base type bit location}{base type bit location} \\
&\livelinki{chap:DWATbitoffsetdatamemberbitlocation}{Data member bit location}{data member bit location} \\
-\livetarg{chap:DWATbitsize}{DW\-\_AT\-\_bit\-\_size}
+\livetarg{chap:DWATbitsize}{DW\_AT\_bit\_size}
&\livelinki{chap:DWATbitsizebasetypebitsize}{Base type bit size}{base type bit size} \\
&\livelinki{chap:DWATbitsizedatamemberbitsize}{Data member bit size}{data member bit size} \\
\newpage
-\livetarg{chap:DWATbitstride}{DW\-\_AT\-\_bit\-\_stride}
+\livetarg{chap:DWATbitstride}{DW\_AT\_bit\_stride}
&\livelinki{chap:DWATbitstridearrayelementstrideofarraytype}{Array element stride (of array type)}{array element stride (of array type)} \\
&\livelinki{chap:DWATbitstridesubrangestridedimensionofarraytype}{Subrange stride (dimension of array type)}{subrange stride (dimension of array type)} \\
&\livelinki{chap:DWATbitstrideenumerationstridedimensionofarraytype}{Enumeration stride (dimension of array type)}{enumeration stride (dimension of array type)} \\
-\livetarg{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}
+\livetarg{chap:DWATbytesize}{DW\_AT\_byte\_size}
&\livelinki{chap:DWATbytesizedataobjectordatatypesize}{Data object or data type size}{data object or data type size} \\
-\livetarg{chap:DWATbytestride}{DW\-\_AT\-\_byte\-\_stride}
+\livetarg{chap:DWATbytestride}{DW\_AT\_byte\_stride}
&\livelinki{chap:DWATbytestridearrayelementstrideofarraytype}{Array element stride (of array type)}{array element stride (of array type)} \\
&\livelinki{chap:DWATbytestridesubrangestridedimensionofarraytype}{Subrange stride (dimension of array type)}{subrange stride (dimension of array type)} \\
&\livelinki{chap:DWATbytestrideenumerationstridedimensionofarraytype}{Enumeration stride (dimension of array type)}{enumeration stride (dimension of array type)} \\
-\livetarg{chap:DWATcallcolumn}{DW\-\_AT\-\_call\-\_column}
+\livetarg{chap:DWATcallcolumn}{DW\_AT\_call\_column}
&\livelinki{chap:DWATcallcolumncolumnpositionofinlinedsubroutinecall}{Column position of inlined subroutine call}{column position of inlined subroutine call}\\
-\livetarg{chap:DWATcallfile}{DW\-\_AT\-\_call\-\_file}
+\livetarg{chap:DWATcallfile}{DW\_AT\_call\_file}
&\livelinki{chap:DWATcallfilefilecontaininginlinedsubroutinecall}{File containing inlined subroutine call}{file containing inlined subroutine call} \\
-\livetarg{chap:DWATcallline}{DW\-\_AT\-\_call\-\_line}
+\livetarg{chap:DWATcallline}{DW\_AT\_call\_line}
&\livelinki{chap:DWATcalllinelinenumberofinlinedsubroutinecall}{Line number of inlined subroutine call}{line number of inlined subroutine call} \\
-\livetarg{chap:DWATcallingconvention}{DW\-\_AT\-\_calling\-\_convention}
+\livetarg{chap:DWATcallingconvention}{DW\_AT\_calling\_convention}
&\livelinki{chap:DWATcallingconventionsubprogramcallingconvention}{Subprogram calling convention}{subprogram calling convention} \\
-\livetarg{chap:DWATcommonreference}{DW\-\_AT\-\_common\-\_reference}
+\livetarg{chap:DWATcommonreference}{DW\_AT\_common\_reference}
&\livelinki{chap:commonreferencecommonblockusage}{Common block usage}{common block usage} \\
-\livetarg{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir}
+\livetarg{chap:DWATcompdir}{DW\_AT\_comp\_dir}
&\livelinki{chap:DWATcompdircompilationdirectory}{Compilation directory}{compilation directory} \\
-\livetarg{chap:DWATconstvalue}{DW\-\_AT\-\_const\-\_value}
+\livetarg{chap:DWATconstvalue}{DW\_AT\_const\_value}
&\livelinki{chap:DWATconstvalueconstantobject}{Constant object}{constant object} \\
&\livelinki{chap:DWATconstvalueenumerationliteralvalue}{Enumeration literal value}{enumeration literal value} \\
&\livelinki{chap:DWATconstvaluetemplatevalueparameter}{Template value parameter}{template value parameter} \\
-\livetarg{chap:DWATconstexpr}{DW\-\_AT\-\_const\-\_expr}
+\livetarg{chap:DWATconstexpr}{DW\_AT\_const\_expr}
&\livelinki{chap:DWATconstexprcompiletimeconstantobject}{Compile-time constant object}{compile-time constant object} \\
&\livelinki{chap:DWATconstexprcompiletimeconstantfunction}{Compile-time constant function}{compile-time constant function} \\
-\livetarg{chap:DWATcontainingtype}{DW\-\_AT\-\_containing\-\_type}
+\livetarg{chap:DWATcontainingtype}{DW\_AT\_containing\_type}
&\livelinki{chap:DWATcontainingtypecontainingtypeofpointertomembertype}{Containing type of pointer to member type}{containing type of pointer to member type} \\
-\livetarg{chap:DWATcount}{DW\-\_AT\-\_count}
+\livetarg{chap:DWATcount}{DW\_AT\_count}
&\livelinki{chap:DWATcountelementsofsubrangetype}{Elements of subrange type}{elements ofbreg subrange type} \\
-\livetarg{chap:DWATdatabitoffset}{DW\-\_AT\-\_data\-\_bit\-\_offset}
+\livetarg{chap:DWATdatabitoffset}{DW\_AT\_data\_bit\_offset}
&\livelinki{chap:DWATdatabitoffsetbasetypebitlocation}{Base type bit location}{base type bit location} \\
&\livelinki{chap:DWATdatabitoffsetdatamemberbitlocation}{Data member bit location}{data member bit location} \\
-\livetarg{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location}
+\livetarg{chap:DWATdatalocation}{DW\_AT\_data\_location}
&\livelinki{chap:DWATdatalocationindirectiontoactualdata}{Indirection to actual data}{indirection to actual data} \\
-\livetarg{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location}
+\livetarg{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}
&\livelinki{chap:DWATdatamemberlocationdatamemberlocation}{Data member location}{data member location} \\
&\livelinki{chap:DWATdatamemberlocationinheritedmemberlocation}{Inherited member location}{inherited member location} \\
-\livetarg{chap:DWATdecimalscale}{DW\-\_AT\-\_decimal\-\_scale}
+\livetarg{chap:DWATdecimalscale}{DW\_AT\_decimal\_scale}
&\livelinki{chap:DWATdecimalscaledecimalscalefactor}{Decimal scale factor}{decimal scale factor} \\
-\livetarg{chap:DWATdecimalsign}{DW\-\_AT\-\_decimal\-\_sign}
+\livetarg{chap:DWATdecimalsign}{DW\_AT\_decimal\_sign}
&\livelinki{chap:DWATdecimalsigndecimalsignrepresentation}{Decimal sign representation}{decimal sign representation} \\
-\livetarg{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column}
+\livetarg{chap:DWATdeclcolumn}{DW\_AT\_decl\_column}
&\livelinki{chap:DWATdeclcolumncolumnpositionofsourcedeclaration}{Column position of source declaration}{column position of source declaration} \\
-\livetarg{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}
+\livetarg{chap:DWATdeclfile}{DW\_AT\_decl\_file}
&\livelinki{chap:DWATdeclfilefilecontainingsourcedeclaration}{File containing source declaration}{file containing source declaration} \\
-\livetarg{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}
+\livetarg{chap:DWATdeclline}{DW\_AT\_decl\_line}
&\livelinki{chap:DWATdecllinelinenumberofsourcedeclaration}{Line number of source declaration}{line number of source declaration} \\
-\livetarg{chap:DWATdeclaration}{DW\-\_AT\-\_declaration}
+\livetarg{chap:DWATdeclaration}{DW\_AT\_declaration}
&\livelinki{chap:DWATdeclarationincompletenondefiningorseparateentitydeclaration}{Incomplete, non-defining, or separate entity declaration}{incomplete, non-defining, or separate entity declaration} \\
-\livetarg{chap:DWATdefaultvalue}{DW\-\_AT\-\_default\-\_value}
+\livetarg{chap:DWATdefaultvalue}{DW\_AT\_default\_value}
&\livelinki{chap:DWATdefaultvaluedefaultvalueofparameter}{Default value of parameter}{default value of parameter} \\
-\livetarg{chap:DWATdescription}{DW\-\_AT\-\_description}
+\livetarg{chap:DWATdescription}{DW\_AT\_description}
&\livelinki{chap:DWATdescriptionartificialnameordescription}{Artificial name or description}{artificial name or description} \\
-\livetarg{chap:DWATdigitcount}{DW\-\_AT\-\_digit\-\_count}
+\livetarg{chap:DWATdigitcount}{DW\_AT\_digit\_count}
&\livelinki{chap:DWATdigitcountdigitcountforpackeddecimalornumericstringtype}{Digit count for packed decimal or numeric string type}{digit count for packed decimal or numeric string type} \\
-\livetarg{chap:DWATdiscr}{DW\-\_AT\-\_discr}
+\livetarg{chap:DWATdiscr}{DW\_AT\_discr}
&\livelinki{chap:DWATdiscrdiscriminantofvariantpart}{Discriminant of variant part}{discriminant of variant part} \\
-\livetarg{chap:DWATdiscrlist}{DW\-\_AT\-\_discr\-\_list}
+\livetarg{chap:DWATdiscrlist}{DW\_AT\_discr\_list}
&\livelinki{chap:DWATdiscrlistlistofdiscriminantvalues}{List of discriminant values}{list of discriminant values} \\
-\livetarg{chap:DWATdiscrvalue}{DW\-\_AT\-\_discr\-\_value}
+\livetarg{chap:DWATdiscrvalue}{DW\_AT\_discr\_value}
&\livelinki{chap:DWATdiscrvaluediscriminantvalue}{Discriminant value}{discriminant value} \\
-\livetarg{chap:DWATelemental}{DW\-\_AT\-\_elemental}
+\livetarg{chap:DWATelemental}{DW\_AT\_elemental}
&\livelinki{chap:DWATelementalelementalpropertyofasubroutine}{Elemental property of a subroutine}{elemental property of a subroutine} \\
-\livetarg{chap:DWATencoding}{DW\-\_AT\-\_encoding}
+\livetarg{chap:DWATencoding}{DW\_AT\_encoding}
&\livelinki{chap:DWATencodingencodingofbasetype}{Encoding of base type}{encoding of base type} \\
-\livetarg{chap:DWATendianity}{DW\-\_AT\-\_endianity}
+\livetarg{chap:DWATendianity}{DW\_AT\_endianity}
&\livelinki{chap:DWATendianityendianityofdata}{Endianity of data}{endianity of data} \\
-\livetarg{chap:DWATentrypc}{DW\-\_AT\-\_entry\-\_pc}
+\livetarg{chap:DWATentrypc}{DW\_AT\_entry\_pc}
&\livelinki{chap:DWATentrypcentryaddressofmoduleinitialization}{Entry address of module initialization}{entry address of module initialization}\\
&\livelinki{chap:DWATentrypcentryaddressofsubprogram}{Entry address of subprogram}{entry address of subprogram} \\
&\livelinki{chap:DWATentrypcentryaddressofinlinedsubprogram}{Entry address of inlined subprogram}{entry address of inlined subprogram}\\
-\livetarg{chap:DWATenumclass}{DW\-\_AT\-\_enum\-\_class}
+\livetarg{chap:DWATenumclass}{DW\_AT\_enum\_class}
&\livelinki{chap:DWATenumclasstypesafeenumerationdefinition}{Type safe enumeration definition}{type safe enumeration definition}\\
-\livetarg{chap:DWATexplicit}{DW\-\_AT\-\_explicit}
+\livetarg{chap:DWATexplicit}{DW\_AT\_explicit}
&\livelinki{chap:DWATexplicitexplicitpropertyofmemberfunction}{Explicit property of member function}{explicit property of member function}\\
-\livetarg{chap:DWATextension}{DW\-\_AT\-\_extension}
+\livetarg{chap:DWATextension}{DW\_AT\_extension}
&\livelinki{chap:DWATextensionpreviousnamespaceextensionororiginalnamespace}{Previous namespace extension or original namespace}{previous namespace extension or original namespace}\\
-\livetarg{chap:DWATexternal}{DW\-\_AT\-\_external}
+\livetarg{chap:DWATexternal}{DW\_AT\_external}
&\livelinki{chap:DWATexternalexternalsubroutine}{External subroutine}{external subroutine} \\
&\livelinki{chap:DWATexternalexternalvariable}{External variable}{external variable} \\
-\livetarg{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}
+\livetarg{chap:DWATframebase}{DW\_AT\_frame\_base}
&\livelinki{chap:DWATframebasesubroutineframebaseaddress}{Subroutine frame base address}{subroutine frame base address} \\
-\livetarg{chap:DWATfriend}{DW\-\_AT\-\_friend}
+\livetarg{chap:DWATfriend}{DW\_AT\_friend}
&\livelinki{chap:DWATfriendfriendrelationship}{Friend relationship}{friend relationship} \\
-\livetarg{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}
+\livetarg{chap:DWAThighpc}{DW\_AT\_high\_pc}
&\livelinki{chap:DWAThighpccontiguousrangeofcodeaddresses}{Contiguous range of code addresses}{contiguous range of code addresses} \\
-\livetarg{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case}
+\livetarg{chap:DWATidentifiercase}{DW\_AT\_identifier\_case}
&\livelinki{chap:DWATidentifiercaseidentifiercaserule}{Identifier case rule}{identifier case rule} \\
-\livetarg{chap:DWATimport}{DW\-\_AT\-\_import}
+\livetarg{chap:DWATimport}{DW\_AT\_import}
&\livelinki{chap:DWATimportimporteddeclaration}{Imported declaration}{imported declaration} \\
&\livelinki{chap:DWATimportimportedunit}{Imported unit}{imported unit} \\
&\livelinki{chap:DWATimportnamespacealias}{Namespace alias}{namespace alias} \\
&\livelinki{chap:DWATimportnamespaceusingdeclaration}{Namespace using declaration}{namespace using declaration} \\
&\livelinki{chap:DWATimportnamespaceusingdirective}{Namespace using directive}{namespace using directive} \\
-\livetarg{chap:DWATinline}{DW\-\_AT\-\_inline}
+\livetarg{chap:DWATinline}{DW\_AT\_inline}
&\livelinki{chap:DWATinlineabstracttinstance}{Abstract instance}{abstract instance} \\
&\livelinki{chap:DWATinlineinlinedsubroutine}{Inlined subroutine}{inlined subroutine} \\
-\livetarg{chap:DWATisoptional}{DW\-\_AT\-\_is\-\_optional}
+\livetarg{chap:DWATisoptional}{DW\_AT\_is\_optional}
&\livelinki{chap:DWATisoptionaloptionalparameter}{Optional parameter}{optional parameter} \\
-\livetarg{chap:DWATlanguage}{DW\-\_AT\-\_language}
+\livetarg{chap:DWATlanguage}{DW\_AT\_language}
&\livelinki{chap:DWATlanguageprogramminglanguage}{Programming language}{programming language} \\
-\livetarg{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name}
+\livetarg{chap:DWATlinkagename}{DW\_AT\_linkage\_name}
&\livelinki{chap:DWATlinkagenameobjectfilelinkagenameofanentity}{Object file linkage name of an entity}{object file linkage name of an entity}\\
-\livetarg{chap:DWATlocation}{DW\-\_AT\-\_location}
+\livetarg{chap:DWATlocation}{DW\_AT\_location}
&\livelinki{chap:DWATlocationdataobjectlocation}{Data object location}{data object location}\\
-\livetarg{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}
+\livetarg{chap:DWATlowpc}{DW\_AT\_low\_pc}
&\livelinki{chap:DWATlowpccodeaddressorrangeofaddresses}{Code address or range of addresses}{code address or range of addresses}\\
-\livetarg{chap:DWATlowerbound}{DW\-\_AT\-\_lower\-\_bound}
+\livetarg{chap:DWATlowerbound}{DW\_AT\_lower\_bound}
&\livelinki{chap:DWATlowerboundlowerboundofsubrange}{Lower bound of subrange}{lower bound of subrange} \\
-\livetarg{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info}
+\livetarg{chap:DWATmacroinfo}{DW\_AT\_macro\_info}
&\livelinki{chap:DWATmacroinfomacroinformation}{Macro information} {macro information} (\#define, \#undef)\\
-\livetarg{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram}
+\livetarg{chap:DWATmainsubprogram}{DW\_AT\_main\_subprogram}
&\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}\\
-\livetarg{chap:DWATmutable}{DW\-\_AT\-\_mutable}
+\livetarg{chap:DWATmutable}{DW\_AT\_mutable}
&\livelinki{chap:DWATmutablemutablepropertyofmemberdata}{Mutable property of member data}{mutable property of member data} \\
-\livetarg{chap:DWATname}{DW\-\_AT\-\_name}
+\livetarg{chap:DWATname}{DW\_AT\_name}
&\livelinki{chap:DWATnamenameofdeclaration}{Name of declaration}{name of declaration}\\
&\livelinki{chap:DWATnamepathnameofcompilationsource}{Path name of compilation source}{path name of compilation source} \\
-\livetarg{chap:DWATnamelistitem}{DW\-\_AT\-\_namelist\-\_item}
+\livetarg{chap:DWATnamelistitem}{DW\_AT\_namelist\_item}
&\livelinki{chap:DWATnamelistitemnamelistitem}{Namelist item}{namelist item}\\
-\livetarg{chap:DWATobjectpointer}{DW\-\_AT\-\_object\-\_pointer}
+\livetarg{chap:DWATobjectpointer}{DW\_AT\_object\_pointer}
&\livelinki{chap:DWATobjectpointerobjectthisselfpointerofmemberfunction}{Object (this, self) pointer of member function}{object (this, self) pointer of member function}\\
-\livetarg{chap:DWATordering}{DW\-\_AT\-\_ordering}
+\livetarg{chap:DWATordering}{DW\_AT\_ordering}
&\livelinki{chap:DWATorderingarrayrowcolumnordering}{Array row/column ordering} {array row/column ordering}\\
-\livetarg{chap:DWATpicturestring}{DW\-\_AT\-\_picture\-\_string}
+\livetarg{chap:DWATpicturestring}{DW\_AT\_picture\_string}
&\livelinki{chap:DWATpicturestringpicturestringfornumericstringtype}{Picture string for numeric string type}{picture string for numeric string type} \\
-\livetarg{chap:DWATpriority}{DW\-\_AT\-\_priority}
+\livetarg{chap:DWATpriority}{DW\_AT\_priority}
&\livelinki{chap:DWATprioritymodulepriority}{Module priority}{module priority}\\
-\livetarg{chap:DWATproducer}{DW\-\_AT\-\_producer}
+\livetarg{chap:DWATproducer}{DW\_AT\_producer}
&\livelinki{chap:DWATproducercompileridentification}{Compiler identification}{compiler identification}\\
-\livetarg{chap:DWATprototyped}{DW\-\_AT\-\_prototyped}
+\livetarg{chap:DWATprototyped}{DW\_AT\_prototyped}
&\livelinki{chap:DWATprototypedsubroutineprototype}{Subroutine prototype}{subroutine prototype}\\
-\livetarg{chap:DWATpure}{DW\-\_AT\-\_pure}
+\livetarg{chap:DWATpure}{DW\_AT\_pure}
&\livelinki{chap:DWATpurepurepropertyofasubroutine}{Pure property of a subroutine}{pure property of a subroutine} \\
-\livetarg{chap:DWATranges}{DW\-\_AT\-\_ranges}
+\livetarg{chap:DWATranges}{DW\_AT\_ranges}
&\livelinki{chap:DWATrangesnoncontiguousrangeofcodeaddresses}{Non-contiguous range of code addresses}{non-contiguous range of code addresses} \\
-\livetarg{chap:DWATrecursive}{DW\-\_AT\-\_recursive}
+\livetarg{chap:DWATrecursive}{DW\_AT\_recursive}
&\livelinki{chap:DWATrecursiverecursivepropertyofasubroutine}{Recursive property of a subroutine}{recursive property of a subroutine} \\
-\livetarg{chap:DWATreturnaddr}{DW\-\_AT\-\_return\-\_addr}
+\livetarg{chap:DWATreturnaddr}{DW\_AT\_return\_addr}
&\livelinki{chap:DWATreturnaddrsubroutinereturnaddresssavelocation}{Subroutine return address save location}{subroutine return address save location} \\
-\livetarg{chap:DWATsegment}{DW\-\_AT\-\_segment}
+\livetarg{chap:DWATsegment}{DW\_AT\_segment}
&\livelinki{chap:DWATsegmentaddressinginformation}{Addressing information}{addressing information} \\
-\livetarg{chap:DWATsibling}{DW\-\_AT\-\_sibling}
+\livetarg{chap:DWATsibling}{DW\_AT\_sibling}
&\livelinki{chap:DWATsiblingdebugginginformationentryrelationship}{Debugging information entry relationship}{debugging information entry relationship} \\
-\livetarg{chap:DWATsmall}{DW\-\_AT\-\_small}
+\livetarg{chap:DWATsmall}{DW\_AT\_small}
&\livelinki{chap:DWATsmallscalefactorforfixedpointtype}{Scale factor for fixed-point type}{scale factor for fixed-point type} \\
-\livetarg{chap:DWATsignature}{DW\-\_AT\-\_signature}
+\livetarg{chap:DWATsignature}{DW\_AT\_signature}
&\livelinki{chap:DWATsignaturetypesignature}{Type signature}{type signature}\\
-\livetarg{chap:DWATspecification}{DW\-\_AT\-\_specification}
+\livetarg{chap:DWATspecification}{DW\_AT\_specification}
&\livelinki{chap:DWATspecificationincompletenondefiningorseparatedeclaration}{Incomplete, non-defining, or separate declaration corresponding to a declaration}{incomplete, non-defining, or separate declaration corresponding to a declaration} \\
-\livetarg{chap:DWATstartscope}{DW\-\_AT\-\_start\-\_scope}
+\livetarg{chap:DWATstartscope}{DW\_AT\_start\_scope}
&\livelinki{chap:DWATstartscopeobjectdeclaration}{Object declaration}{object declaration}\\
&\livelinki{chap:DWATstartscopetypedeclaration}{Type declaration}{type declaration}\\
-\livetarg{chap:DWATstaticlink}{DW\-\_AT\-\_static\-\_link}
+\livetarg{chap:DWATstaticlink}{DW\_AT\_static\_link}
&\livelinki{chap:DWATstaticlinklocationofuplevelframe}{Location of uplevel frame}{location of uplevel frame} \\
-\livetarg{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list}
+\livetarg{chap:DWATstmtlist}{DW\_AT\_stmt\_list}
&\livelinki{chap:DWATstmtlistlinenumberinformationforunit}{Line number information for unit}{line number information for unit}\\
-\livetarg{chap:DWATstringlength}{DW\-\_AT\-\_string\-\_length}
+\livetarg{chap:DWATstringlength}{DW\_AT\_string\_length}
&\livelinki{chap:DWATstringlengthstringlengthofstringtype}{String length of string type}{string length of string type}
\\
-\livetarg{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled}
+\livetarg{chap:DWATthreadsscaled}{DW\_AT\_threads\_scaled}
&\livelink{chap:DWATthreadsscaledupcarrayboundthreadsscalfactor}{UPC!array bound THREADS scale factor}\\
-\livetarg{chap:DWATtrampoline}{DW\-\_AT\-\_trampoline}
+\livetarg{chap:DWATtrampoline}{DW\_AT\_trampoline}
&\livelinki{chap:DWATtrampolinetargetsubroutine}{Target subroutine}{target subroutine of trampoline} \\
-\livetarg{chap:DWATtype}{DW\-\_AT\-\_type}
+\livetarg{chap:DWATtype}{DW\_AT\_type}
&\livelinki{chap:DWATtypetypeofdeclaration}{Type of declaration}{type of declaration} \\
&\livelinki{chap:DWATtypetypeofsubroutinereturn}{Type of subroutine return}{type of subroutine return} \\
-\livetarg{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound}
+\livetarg{chap:DWATupperbound}{DW\_AT\_upper\_bound}
&\livelinki{chap:DWATupperboundupperboundofsubrange}{Upper bound of subrange}{upper bound of subrange} \\
-\livetarg{chap:DWATuselocation}{DW\-\_AT\-\_use\-\_location}
+\livetarg{chap:DWATuselocation}{DW\_AT\_use\_location}
&\livelinki{chap:DWATuselocationmemberlocationforpointertomembertype}{Member location for pointer to member type}{member location for pointer to member type} \\
-\livetarg{chap:DWATuseUTF8}{DW\-\_AT\-\_use\-\_UTF8}\addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8}
+\livetarg{chap:DWATuseUTF8}{DW\_AT\_use\_UTF8}\addtoindexx{use UTF8 attribute}\addtoindexx{UTF-8}
&\livelinki{chap:DWATuseUTF8compilationunitusesutf8strings}{Compilation unit uses UTF-8 strings}{compilation unit uses UTF-8 strings} \\
-\livetarg{chap:DWATvariableparameter}{DW\-\_AT\-\_variable\-\_parameter}
+\livetarg{chap:DWATvariableparameter}{DW\_AT\_variable\_parameter}
&\livelinki{chap:DWATvariableparameternonconstantparameterflag}{Non-constant parameter flag}{non-constant parameter flag} \\
-\livetarg{chap:DWATvirtuality}{DW\-\_AT\-\_virtuality}
+\livetarg{chap:DWATvirtuality}{DW\_AT\_virtuality}
&\livelinki{chap:DWATvirtualityvirtualityindication}{Virtuality indication}{virtuality indication} \\
&\livelinki{chap:DWATvirtualityvirtualityofbaseclass}{Virtuality of base class} {virtuality of base class} \\
&\livelinki{chap:DWATvirtualityvirtualityoffunction}{Virtuality of function}{virtuality of function} \\
-\livetarg{chap:DWATvisibility}{DW\-\_AT\-\_visibility}
+\livetarg{chap:DWATvisibility}{DW\_AT\_visibility}
&\livelinki{chap:DWATvisibilityvisibilityofdeclaration}{Visibility of declaration}{visibility of declaration} \\
-\livetarg{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}
+\livetarg{chap:DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}
&\livelinki{chap:DWATvtableelemlocationvirtualfunctiontablevtableslot}{Virtual function vtable slot}{virtual function vtable slot}\\
\end{longtable}
children of individual siblings, that producer may attach
\addtoindexx{sibling attribute}
a
-\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} attribute
+\livelink{chap:DWATsibling}{DW\_AT\_sibling} attribute
to any debugging information entry.
The
value of this attribute is a reference to the sibling entry
value is truncated to the element size and the low\dash order bits
are pushed on the stack.
\begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPlit0}{DW\-\_OP\-\_lit0}, \livetarg{chap:DWOPlit1}{DW\-\_OP\-\_lit1}, \dots, \livetarg{chap:DWOPlit31}{DW\-\_OP\-\_lit31}}
-The \livetarg{chap:DWOPlit}{DW\-\_OP\-\_lit}n operations encode the unsigned literal values
+\itembfnl{\livetarg{chap:DWOPlit0}{DW\_OP\_lit0}, \livetarg{chap:DWOPlit1}{DW\_OP\_lit1}, \dots, \livetarg{chap:DWOPlit31}{DW\_OP\_lit31}}
+The \livetarg{chap:DWOPlit}{DW\_OP\_lit}n operations encode the unsigned literal values
from 0 through 31, inclusive.
-\itembfnl{\livetarg{chap:DWOPaddr}{DW\-\_OP\-\_addr}}
-The \livelink{chap:DWOPaddr}{DW\-\_OP\-\_addr} operation has a single operand that encodes
+\itembfnl{\livetarg{chap:DWOPaddr}{DW\_OP\_addr}}
+The \livelink{chap:DWOPaddr}{DW\_OP\_addr} operation has a single operand that encodes
a machine address and whose size is the \addtoindex{size of an address}
on the target machine.
-\itembfnl{\livetarg{chap:DWOPconst1u}{DW\-\_OP\-\_const1u}, \livetarg{chap:DWOPconst2u}{DW\-\_OP\-\_const2u}, \livetarg{chap:DWOPconst4u}{DW\-\_OP\-\_const4u}, \livetarg{chap:DWOPconst8u}{DW\-\_OP\-\_const8u}}
-The single operand of a \livetarg{chap:DWOPconstnu}{DW\-\_OP\-\_constnu} operation provides a 1,
+\itembfnl{\livetarg{chap:DWOPconst1u}{DW\_OP\_const1u}, \livetarg{chap:DWOPconst2u}{DW\_OP\_const2u}, \livetarg{chap:DWOPconst4u}{DW\_OP\_const4u}, \livetarg{chap:DWOPconst8u}{DW\_OP\_const8u}}
+The single operand of a \livetarg{chap:DWOPconstnu}{DW\_OP\_constnu} operation provides a 1,
2, 4, or 8\dash byte unsigned integer constant, respectively.
-\itembfnl{\livetarg{chap:DWOPconst1s}{DW\-\_OP\-\_const1s} , \livetarg{chap:DWOPconst2s}{DW\-\_OP\-\_const2s}, \livetarg{chap:DWOPconst4s}{DW\-\_OP\-\_const4s}, \livetarg{chap:DWOPconst8s}{DW\-\_OP\-\_const8s}}
-The single operand of a \livetarg{chap:DWOPconstns}{DW\-\_OP\-\_constns} operation provides a 1,
+\itembfnl{\livetarg{chap:DWOPconst1s}{DW\_OP\_const1s} , \livetarg{chap:DWOPconst2s}{DW\_OP\_const2s}, \livetarg{chap:DWOPconst4s}{DW\_OP\_const4s}, \livetarg{chap:DWOPconst8s}{DW\_OP\_const8s}}
+The single operand of a \livetarg{chap:DWOPconstns}{DW\_OP\_constns} operation provides a 1,
2, 4, or 8\dash byte signed integer constant, respectively.
-\itembfnl{\livetarg{chap:DWOPconstu}{DW\-\_OP\-\_constu}}
-The single operand of the \livelink{chap:DWOPconstu}{DW\-\_OP\-\_constu} operation provides
+\itembfnl{\livetarg{chap:DWOPconstu}{DW\_OP\_constu}}
+The single operand of the \livelink{chap:DWOPconstu}{DW\_OP\_constu} operation provides
an unsigned LEB128 integer constant.
-\itembfnl{\livetarg{chap:DWOPconsts}{DW\-\_OP\-\_consts}}
-The single operand of the \livelink{chap:DWOPconsts}{DW\-\_OP\-\_consts} operation provides
+\itembfnl{\livetarg{chap:DWOPconsts}{DW\_OP\_consts}}
+The single operand of the \livelink{chap:DWOPconsts}{DW\_OP\_consts} operation provides
a signed LEB128 integer constant.
\end{enumerate}
the result of adding the contents of a register to a given
signed offset.
\begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPfbreg}{DW\-\_OP\-\_fbreg}}
-The \livelink{chap:DWOPfbreg}{DW\-\_OP\-\_fbreg} operation provides a signed LEB128 offset
+\itembfnl{\livetarg{chap:DWOPfbreg}{DW\_OP\_fbreg}}
+The \livelink{chap:DWOPfbreg}{DW\_OP\_fbreg} operation provides a signed LEB128 offset
from the address specified by the location description in the
-\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base} attribute of the current function. (This
+\livelink{chap:DWATframebase}{DW\_AT\_frame\_base} attribute of the current function. (This
is typically a \doublequote{stack pointer} register plus or minus
some offset. On more sophisticated systems it might be a
location list that adjusts the offset according to changes
in the stack pointer as the PC changes.)
-\itembfnl{\livetarg{chap:DWOPbreg0}{DW\-\_OP\-\_breg0}, \livetarg{chap:DWOPbreg1}{DW\-\_OP\-\_breg1}, \dots, \livetarg{chap:DWOPbreg31}{DW\-\_OP\-\_breg31} }
-The single operand of the \livetarg{chap:DWOPbreg}{DW\-\_OP\-\_breg}\textit{n}
+\itembfnl{\livetarg{chap:DWOPbreg0}{DW\_OP\_breg0}, \livetarg{chap:DWOPbreg1}{DW\_OP\_breg1}, \dots, \livetarg{chap:DWOPbreg31}{DW\_OP\_breg31} }
+The single operand of the \livetarg{chap:DWOPbreg}{DW\_OP\_breg}\textit{n}
operations provides
a signed LEB128 offset from
the specified register.
-\itembfnl{\livetarg{chap:DWOPbregx}{DW\-\_OP\-\_bregx} }
-The \livelink{chap:DWOPbregx}{DW\-\_OP\-\_bregx} operation has two operands: a register
+\itembfnl{\livetarg{chap:DWOPbregx}{DW\_OP\_bregx} }
+The \livelink{chap:DWOPbregx}{DW\_OP\_bregx} operation has two operands: a register
which is specified by an unsigned LEB128 number, followed by
a signed LEB128 offset.
that index the stack assume that the top of the stack (most
recently added entry) has index 0.
\begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPdup}{DW\-\_OP\-\_dup}}
-The \livelink{chap:DWOPdup}{DW\-\_OP\-\_dup} operation duplicates the value at the top of the stack.
+\itembfnl{\livetarg{chap:DWOPdup}{DW\_OP\_dup}}
+The \livelink{chap:DWOPdup}{DW\_OP\_dup} operation duplicates the value at the top of the stack.
-\itembfnl{\livetarg{chap:DWOPdrop}{DW\-\_OP\-\_drop}}
-The \livelink{chap:DWOPdrop}{DW\-\_OP\-\_drop} operation pops the value at the top of the stack.
+\itembfnl{\livetarg{chap:DWOPdrop}{DW\_OP\_drop}}
+The \livelink{chap:DWOPdrop}{DW\_OP\_drop} operation pops the value at the top of the stack.
-\itembfnl{\livetarg{chap:DWOPpick}{DW\-\_OP\-\_pick}}
-The single operand of the \livelink{chap:DWOPpick}{DW\-\_OP\-\_pick} operation provides a
+\itembfnl{\livetarg{chap:DWOPpick}{DW\_OP\_pick}}
+The single operand of the \livelink{chap:DWOPpick}{DW\_OP\_pick} operation provides a
1\dash byte index. A copy of the stack entry with the specified
index (0 through 255, inclusive) is pushed onto the stack.
-\itembfnl{\livetarg{chap:DWOPover}{DW\-\_OP\-\_over}}
-The \livelink{chap:DWOPover}{DW\-\_OP\-\_over} operation duplicates the entry currently second
+\itembfnl{\livetarg{chap:DWOPover}{DW\_OP\_over}}
+The \livelink{chap:DWOPover}{DW\_OP\_over} operation duplicates the entry currently second
in the stack at the top of the stack.
This is equivalent to
-a \livelink{chap:DWOPpick}{DW\-\_OP\-\_pick} operation, with index 1.
+a \livelink{chap:DWOPpick}{DW\_OP\_pick} operation, with index 1.
-\itembfnl{\livetarg{chap:DWOPswap}{DW\-\_OP\-\_swap}}
-The \livelink{chap:DWOPswap}{DW\-\_OP\-\_swap} operation swaps the top two stack entries.
+\itembfnl{\livetarg{chap:DWOPswap}{DW\_OP\_swap}}
+The \livelink{chap:DWOPswap}{DW\_OP\_swap} operation swaps the top two stack entries.
The entry at the top of the
stack becomes the second stack entry,
and the second entry becomes the top of the stack.
-\itembfnl{\livetarg{chap:DWOProt}{DW\-\_OP\-\_rot}}
-The \livelink{chap:DWOProt}{DW\-\_OP\-\_rot} operation rotates the first three stack
+\itembfnl{\livetarg{chap:DWOProt}{DW\_OP\_rot}}
+The \livelink{chap:DWOProt}{DW\_OP\_rot} operation rotates the first three stack
entries. The entry at the top of the stack becomes the third
stack entry, the second entry becomes the top of the stack,
and the third entry becomes the second entry.
-\itembfnl{\livetarg{chap:DWOPderef}{DW\-\_OP\-\_deref}}
-The \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref}
+\itembfnl{\livetarg{chap:DWOPderef}{DW\_OP\_deref}}
+The \livelink{chap:DWOPderef}{DW\_OP\_deref}
operation pops the top stack entry and
treats it as an address. The value
retrieved from that address is pushed.
\addtoindexi{dereferenced}{address!dereference operator}
address is the \addtoindex{size of an address} on the target machine.
-\itembfnl{\livetarg{chap:DWOPderefsize}{DW\-\_OP\-\_deref\-\_size}}
-The \livelink{chap:DWOPderefsize}{DW\-\_OP\-\_deref\-\_size} operation behaves like the \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref}
+\itembfnl{\livetarg{chap:DWOPderefsize}{DW\_OP\_deref\_size}}
+The \livelink{chap:DWOPderefsize}{DW\_OP\_deref\_size} operation behaves like the \livelink{chap:DWOPderef}{DW\_OP\_deref}
operation: it pops the top stack entry and treats it as an
address. The value retrieved from that address is pushed. In
-the \livelink{chap:DWOPderefsize}{DW\-\_OP\-\_deref\-\_size} operation, however, the size in bytes
+the \livelink{chap:DWOPderefsize}{DW\_OP\_deref\_size} 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
unsigned integral constant whose value may not be larger
retrieved is zero extended to the size of an address on the
target machine before being pushed onto the expression stack.
-\itembfnl{\livetarg{chap:DWOPxderef}{DW\-\_OP\-\_xderef}}
-The \livelink{chap:DWOPxderef}{DW\-\_OP\-\_xderef} operation provides an extended dereference
+\itembfnl{\livetarg{chap:DWOPxderef}{DW\_OP\_xderef}}
+The \livelink{chap:DWOPxderef}{DW\_OP\_xderef} operation provides an extended dereference
mechanism. The entry at the top of the stack is treated as an
address. The second stack entry is treated as an \doublequote{address
space identifier} for those architectures that support
address is the
\addtoindex{size of an address} on the target machine.
-\itembfnl{\livetarg{chap:DWOPxderefsize}{DW\-\_OP\-\_xderef\-\_size}}
-The \livelink{chap:DWOPxderefsize}{DW\-\_OP\-\_xderef\-\_size} operation behaves like the
-\livelink{chap:DWOPxderef}{DW\-\_OP\-\_xderef} operation.The entry at the top of the stack is
+\itembfnl{\livetarg{chap:DWOPxderefsize}{DW\_OP\_xderef\_size}}
+The \livelink{chap:DWOPxderefsize}{DW\_OP\_xderef\_size} operation behaves like the
+\livelink{chap:DWOPxderef}{DW\_OP\_xderef} operation.The entry at the top of the stack is
treated as an address. The second stack entry is treated as
an \doublequote{address space identifier} for those architectures
that support
address spaces. The top two stack
elements are popped, and a data item is retrieved through an
implementation\dash defined address calculation and pushed as the
-new stack top. In the \livelink{chap:DWOPxderefsize}{DW\-\_OP\-\_xderef\-\_size} operation, however,
+new stack top. In the \livelink{chap:DWOPxderefsize}{DW\_OP\_xderef\_size} 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
retrieved is zero extended to the \addtoindex{size of an address} on the
target machine before being pushed onto the expression stack.
-\itembfnl{\livetarg{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}}
-The \livelink{chap:DWOPpushobjectaddress}{DW\-\_OP\-\_push\-\_object\-\_address}
+\itembfnl{\livetarg{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}}
+The \livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
operation pushes the address
of the object currently being evaluated as part of evaluation
of a user presented expression. This object may correspond
to the implicit push of the base
\addtoindexi{address}{address!implicit push of base}
of a structure prior
-to evaluation of a \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} to access a
+to evaluation of a \livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location} to access a
data member of a structure. For an example, see
Appendix \refersec{app:aggregateexamples}.}
\needlines{4}
-\itembfnl{\livetarg{chap:DWOPformtlsaddress}{DW\-\_OP\-\_form\-\_tls\-\_address}}
-The \livelink{chap:DWOPformtlsaddress}{DW\-\_OP\-\_form\-\_tls\-\_address} operation pops a value from the
+\itembfnl{\livetarg{chap:DWOPformtlsaddress}{DW\_OP\_form\_tls\_address}}
+The \livelink{chap:DWOPformtlsaddress}{DW\_OP\_form\_tls\_address} operation pops a value from the
stack, translates it into an address in the current thread's
\addtoindexx{thread-local storage}
thread\dash local storage \nolink{block}, and pushes the address. If the
DWARF expression containing
-the \livelink{chap:DWOPformtlsaddress}{DW\-\_OP\-\_form\-\_tls\-\_address}
+the \livelink{chap:DWOPformtlsaddress}{DW\_OP\_form\_tls\_address}
operation belongs to the main executable's DWARF info, the
operation uses the main executable's thread\dash local storage
\nolink{block}; if the expression belongs to a shared library's
the appropriate \nolink{block} can be complex (in some cases, the
compiler emits a function call to do it), and difficult
to describe using ordinary DWARF location descriptions.
-\livelink{chap:DWOPformtlsaddress}{DW\-\_OP\-\_form\-\_tls\-\_address} leaves the computation to the
+\livelink{chap:DWOPformtlsaddress}{DW\_OP\_form\_tls\_address} leaves the computation to the
consumer.}
-\itembfnl{\livetarg{chap:DWOPcallframecfa}{DW\-\_OP\-\_call\-\_frame\-\_cfa}}
-The \livelink{chap:DWOPcallframecfa}{DW\-\_OP\-\_call\-\_frame\-\_cfa} operation pushes the value of the
+\itembfnl{\livetarg{chap:DWOPcallframecfa}{DW\_OP\_call\_frame\_cfa}}
+The \livelink{chap:DWOPcallframecfa}{DW\_OP\_call\_frame\_cfa} operation pushes the value of the
CFA, obtained from the Call Frame Information
(see Section \refersec{chap:callframeinformation}).
-\textit{Although the value of \livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}
+\textit{Although the value of \livelink{chap:DWATframebase}{DW\_AT\_frame\_base}
can be computed using other DWARF expression operators,
in some cases this would require an extensive location list
because the values of the registers used in computing the
bits).
Such operations do not cause an exception on overflow.
\begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPabs}{DW\-\_OP\-\_abs}}
-The \livelink{chap:DWOPabs}{DW\-\_OP\-\_abs} operation pops the top stack entry, interprets
+\itembfnl{\livetarg{chap:DWOPabs}{DW\_OP\_abs}}
+The \livelink{chap:DWOPabs}{DW\_OP\_abs} operation pops the top stack entry, interprets
it as a signed value and pushes its absolute value. If the
absolute value cannot be represented, the result is undefined.
-\itembfnl{\livetarg{chap:DWOPand}{DW\-\_OP\-\_and}}
-The \livelink{chap:DWOPand}{DW\-\_OP\-\_and} operation pops the top two stack values, performs
+\itembfnl{\livetarg{chap:DWOPand}{DW\_OP\_and}}
+The \livelink{chap:DWOPand}{DW\_OP\_and} operation pops the top two stack values, performs
a bitwise and operation on the two, and pushes the result.
-\itembfnl{\livetarg{chap:DWOPdiv}{DW\-\_OP\-\_div}}
-The \livelink{chap:DWOPdiv}{DW\-\_OP\-\_div} operation pops the top two stack values, divides the former second entry by
+\itembfnl{\livetarg{chap:DWOPdiv}{DW\_OP\_div}}
+The \livelink{chap:DWOPdiv}{DW\_OP\_div} operation pops the top two stack values, divides the former second entry by
the former top of the stack using signed division, and pushes the result.
-\itembfnl{\livetarg{chap:DWOPminus}{DW\-\_OP\-\_minus}}
-The \livelink{chap:DWOPminus}{DW\-\_OP\-\_minus} operation pops the top two stack values, subtracts the former top of the
+\itembfnl{\livetarg{chap:DWOPminus}{DW\_OP\_minus}}
+The \livelink{chap:DWOPminus}{DW\_OP\_minus} operation pops the top two stack values, subtracts the former top of the
stack from the former second entry, and pushes the result.
-\itembfnl{\livetarg{chap:DWOPmod}{DW\-\_OP\-\_mod}}
-The \livelink{chap:DWOPmod}{DW\-\_OP\-\_mod} operation pops the top two stack values and pushes the result of the
+\itembfnl{\livetarg{chap:DWOPmod}{DW\_OP\_mod}}
+The \livelink{chap:DWOPmod}{DW\_OP\_mod} operation pops the top two stack values and pushes the result of the
calculation: former second stack entry modulo the former top of the stack.
-\itembfnl{\livetarg{chap:DWOPmul}{DW\-\_OP\-\_mul}}
-The \livelink{chap:DWOPmul}{DW\-\_OP\-\_mul} operation pops the top two stack entries, multiplies them together, and
+\itembfnl{\livetarg{chap:DWOPmul}{DW\_OP\_mul}}
+The \livelink{chap:DWOPmul}{DW\_OP\_mul} operation pops the top two stack entries, multiplies them together, and
pushes the result.
-\itembfnl{\livetarg{chap:DWOPneg}{DW\-\_OP\-\_neg}}
-The \livelink{chap:DWOPneg}{DW\-\_OP\-\_neg} operation pops the top stack entry, interprets
+\itembfnl{\livetarg{chap:DWOPneg}{DW\_OP\_neg}}
+The \livelink{chap:DWOPneg}{DW\_OP\_neg} operation pops the top stack entry, interprets
it as a signed value and pushes its negation. If the negation
cannot be represented, the result is undefined.
-\itembfnl{\livetarg{chap:DWOPnot}{DW\-\_OP\-\_not}}
-The \livelink{chap:DWOPnot}{DW\-\_OP\-\_not} operation pops the top stack entry, and pushes
+\itembfnl{\livetarg{chap:DWOPnot}{DW\_OP\_not}}
+The \livelink{chap:DWOPnot}{DW\_OP\_not} operation pops the top stack entry, and pushes
its bitwise complement.
-\itembfnl{\livetarg{chap:DWOPor}{DW\-\_OP\-\_or}}
-The \livelink{chap:DWOPor}{DW\-\_OP\-\_or} operation pops the top two stack entries, performs
+\itembfnl{\livetarg{chap:DWOPor}{DW\_OP\_or}}
+The \livelink{chap:DWOPor}{DW\_OP\_or} operation pops the top two stack entries, performs
a bitwise or operation on the two, and pushes the result.
-\itembfnl{\livetarg{chap:DWOPplus}{DW\-\_OP\-\_plus}}
-The \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus} operation pops the top two stack entries,
+\itembfnl{\livetarg{chap:DWOPplus}{DW\_OP\_plus}}
+The \livelink{chap:DWOPplus}{DW\_OP\_plus} operation pops the top two stack entries,
adds them together, and pushes the result.
-\itembfnl{\livetarg{chap:DWOPplusuconst}{DW\-\_OP\-\_plus\-\_uconst}}
-The \livelink{chap:DWOPplusuconst}{DW\-\_OP\-\_plus\-\_uconst} operation pops the top stack entry,
+\itembfnl{\livetarg{chap:DWOPplusuconst}{DW\_OP\_plus\_uconst}}
+The \livelink{chap:DWOPplusuconst}{DW\_OP\_plus\_uconst} operation pops the top stack entry,
adds it to the unsigned LEB128 constant operand and pushes
the result.
\textit{This operation is supplied specifically to be
able to encode more field offsets in two bytes than can be
done with
-\doublequote{\livelink{chap:DWOPlit}{DW\-\_OP\-\_lit\textit{n}} \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}}.}
+\doublequote{\livelink{chap:DWOPlit}{DW\_OP\_lit\textit{n}} \livelink{chap:DWOPplus}{DW\_OP\_plus}}.}
\needlines{3}
-\itembfnl{\livetarg{chap:DWOPshl}{DW\-\_OP\-\_shl}}
-The \livelink{chap:DWOPshl}{DW\-\_OP\-\_shl} operation pops the top two stack entries,
+\itembfnl{\livetarg{chap:DWOPshl}{DW\_OP\_shl}}
+The \livelink{chap:DWOPshl}{DW\_OP\_shl} operation pops the top two stack entries,
shifts the former second entry left (filling with zero bits)
by the number of bits specified by the former top of the stack,
and pushes the result.
-\itembfnl{\livetarg{chap:DWOPshr}{DW\-\_OP\-\_shr}}
-The \livelink{chap:DWOPshr}{DW\-\_OP\-\_shr} operation pops the top two stack entries,
+\itembfnl{\livetarg{chap:DWOPshr}{DW\_OP\_shr}}
+The \livelink{chap:DWOPshr}{DW\_OP\_shr} operation pops the top two stack entries,
shifts the former second entry right logically (filling with
zero bits) by the number of bits specified by the former top
of the stack, and pushes the result.
\needlines{6}
-\itembfnl{\livetarg{chap:DWOPshra}{DW\-\_OP\-\_shra}}
-The \livelink{chap:DWOPshra}{DW\-\_OP\-\_shra} operation pops the top two stack entries,
+\itembfnl{\livetarg{chap:DWOPshra}{DW\_OP\_shra}}
+The \livelink{chap:DWOPshra}{DW\_OP\_shra} operation pops the top two stack entries,
shifts the former second entry right arithmetically (divide
the magnitude by 2, keep the same sign for the result) by
the number of bits specified by the former top of the stack,
and pushes the result.
-\itembfnl{\livetarg{chap:DWOPxor}{DW\-\_OP\-\_xor}}
-The \livelink{chap:DWOPxor}{DW\-\_OP\-\_xor} operation pops the top two stack entries,
+\itembfnl{\livetarg{chap:DWOPxor}{DW\_OP\_xor}}
+The \livelink{chap:DWOPxor}{DW\_OP\_xor} operation pops the top two stack entries,
performs a bitwise exclusive\dash or operation on the two, and
pushes the result.
\addtoindexx{DWARF expression!control flow operations}
following operations provide simple control of the flow of a DWARF expression.
\begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPle}{DW\-\_OP\-\_le}, \livetarg{chap:DWOPge}{DW\-\_OP\-\_ge}, \livetarg{chap:DWOPeq}{DW\-\_OP\-\_eq}, \livetarg{chap:DWOPlt}{DW\-\_OP\-\_lt}, \livetarg{chap:DWOPgt}{DW\-\_OP\-\_gt}, \livetarg{chap:DWOPne}{DW\-\_OP\-\_ne}}
+\itembfnl{\livetarg{chap:DWOPle}{DW\_OP\_le}, \livetarg{chap:DWOPge}{DW\_OP\_ge}, \livetarg{chap:DWOPeq}{DW\_OP\_eq}, \livetarg{chap:DWOPlt}{DW\_OP\_lt}, \livetarg{chap:DWOPgt}{DW\_OP\_gt}, \livetarg{chap:DWOPne}{DW\_OP\_ne}}
The six relational operators each:
\begin{itemize}
\item pop the top two stack values,
\end{itemize}
Comparisons are performed as signed operations. The six
-operators are \livelink{chap:DWOPle}{DW\-\_OP\-\_le} (less than or equal to), \livelink{chap:DWOPge}{DW\-\_OP\-\_ge}
-(greater than or equal to), \livelink{chap:DWOPeq}{DW\-\_OP\-\_eq} (equal to), \livelink{chap:DWOPlt}{DW\-\_OP\-\_lt} (less
-than), \livelink{chap:DWOPgt}{DW\-\_OP\-\_gt} (greater than) and \livelink{chap:DWOPne}{DW\-\_OP\-\_ne} (not equal to).
+operators are \livelink{chap:DWOPle}{DW\_OP\_le} (less than or equal to), \livelink{chap:DWOPge}{DW\_OP\_ge}
+(greater than or equal to), \livelink{chap:DWOPeq}{DW\_OP\_eq} (equal to), \livelink{chap:DWOPlt}{DW\_OP\_lt} (less
+than), \livelink{chap:DWOPgt}{DW\_OP\_gt} (greater than) and \livelink{chap:DWOPne}{DW\_OP\_ne} (not equal to).
\needlines{6}
-\itembfnl{\livetarg{chap:DWOPskip}{DW\-\_OP\-\_skip}}
-\livelink{chap:DWOPskip}{DW\-\_OP\-\_skip} is an unconditional branch. Its single operand
+\itembfnl{\livetarg{chap:DWOPskip}{DW\_OP\_skip}}
+\livelink{chap:DWOPskip}{DW\_OP\_skip} is an unconditional branch. Its single operand
is a 2\dash byte signed integer constant. The 2\dash 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.
-\itembfnl{\livetarg{chap:DWOPbra}{DW\-\_OP\-\_bra}}
-\livelink{chap:DWOPbra}{DW\-\_OP\-\_bra} is a conditional branch. Its single operand is a
+\itembfnl{\livetarg{chap:DWOPbra}{DW\_OP\_bra}}
+\livelink{chap:DWOPbra}{DW\_OP\_bra} is a conditional branch. Its single operand is a
2\dash 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 following item does not correctly hyphenate leading
% to an overfull hbox and a visible artifact.
% So we use \- to suggest hyphenation in this rare situation.
-\itembfnl{\livetarg{chap:DWOPcall2}{DW\-\_OP\-\_call2}, \livetarg{chap:DWOPcall4}{DW\-\_OP\-\_call4}, \livetarg{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref}}
-\livelink{chap:DWOPcall2}{DW\-\_OP\-\_call2},
-\livelink{chap:DWOPcall4}{DW\-\_OP\-\_call4},
-and \livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref} perform
+\itembfnl{\livetarg{chap:DWOPcall2}{DW\_OP\_call2}, \livetarg{chap:DWOPcall4}{DW\_OP\_call4}, \livetarg{chap:DWOPcallref}{DW\_OP\_call\_ref}}
+\livelink{chap:DWOPcall2}{DW\_OP\_call2},
+\livelink{chap:DWOPcall4}{DW\_OP\_call4},
+and \livelink{chap:DWOPcallref}{DW\_OP\_call\_ref} perform
subroutine calls during evaluation of a DWARF expression or
location description.
-For \livelink{chap:DWOPcall2}{DW\-\_OP\-\_call2} and
-\livelink{chap:DWOPcall4}{DW\-\_OP\-\_call4},
+For \livelink{chap:DWOPcall2}{DW\_OP\_call2} and
+\livelink{chap:DWOPcall4}{DW\_OP\_call4},
the
operand is the 2\dash~ or 4\dash byte
unsigned offset, respectively,
of a debugging information entry in the current compilation
-unit. The \livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref} operator has a single operand. In the
+unit. The \livelink{chap:DWOPcallref}{DW\_OP\_call\_ref} operator has a single operand. In the
32\dash bit DWARF format, the operand 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}).
must be performed by the consumer.
\textit{Operand interpretation of
-\livelink{chap:DWOPcall2}{DW\-\_OP\-\_call2}, \livelink{chap:DWOPcall4}{DW\-\_OP\-\_call4} and \livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref} is exactly like
-that for \livelink{chap:DWFORMref2}{DW\-\_FORM\-\_ref2}, \livelink{chap:DWFORMref4}{DW\-\_FORM\-\_ref4} and \livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr},
+\livelink{chap:DWOPcall2}{DW\_OP\_call2}, \livelink{chap:DWOPcall4}{DW\_OP\_call4} and \livelink{chap:DWOPcallref}{DW\_OP\_call\_ref} is exactly like
+that for \livelink{chap:DWFORMref2}{DW\_FORM\_ref2}, \livelink{chap:DWFORMref4}{DW\_FORM\_ref4} and \livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr},
respectively
(see Section \refersec{datarep:attributeencodings}).
}
control of DWARF expression evaluation to
\addtoindexx{location attribute}
the
-\livelink{chap:DWATlocation}{DW\-\_AT\-\_location}
+\livelink{chap:DWATlocation}{DW\_AT\_location}
attribute of the referenced debugging information entry. If
there is no such attribute, then there is no effect. Execution
of the DWARF expression of
\addtoindexx{location attribute}
a
-\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} attribute may add
+\livelink{chap:DWATlocation}{DW\_AT\_location} attribute may add
to and/or remove from values on the stack. Execution returns
to the point following the call when the end of the attribute
is reached. Values on the stack at the time of the call may be
\addtoindexx{DWARF expression!special operations}
is one special operation currently defined:
\begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPnop}{DW\-\_OP\-\_nop}}
-The \livelink{chap:DWOPnop}{DW\-\_OP\-\_nop} operation is a place holder. It has no effect
+\itembfnl{\livetarg{chap:DWOPnop}{DW\_OP\_nop}}
+The \livelink{chap:DWOPnop}{DW\_OP\_nop} operation is a place holder. It has no effect
on the location stack or any of its values.
\end{enumerate}
\hline
\endhead
\endfoot
-0& 17& \livelink{chap:DWOPdup}{DW\-\_OP\-\_dup} &0 &17 \\
+0& 17& \livelink{chap:DWOPdup}{DW\_OP\_dup} &0 &17 \\
1& 29& & 1 & 17 \\
2& 1000 & & 2 & 29\\
& & & 3&1000\\
& & & & \\
-0 & 17 & \livelink{chap:DWOPdrop}{DW\-\_OP\-\_drop} & 0 & 29 \\
+0 & 17 & \livelink{chap:DWOPdrop}{DW\_OP\_drop} & 0 & 29 \\
1 &29 & & 1 & 1000 \\
2 &1000& & & \\
& & & & \\
-0 & 17 & \livelink{chap:DWOPpick}{DW\-\_OP\-\_pick, 2} & 0 & 1000 \\
+0 & 17 & \livelink{chap:DWOPpick}{DW\_OP\_pick, 2} & 0 & 1000 \\
1 & 29 & & 1&17 \\
2 &1000& &2&29 \\
& & &3&1000 \\
& & & & \\
-0&17& \livelink{chap:DWOPover}{DW\-\_OP\-\_over}&0&29 \\
+0&17& \livelink{chap:DWOPover}{DW\_OP\_over}&0&29 \\
1&29& & 1&17 \\
2&1000 & & 2&29\\
& & & 3&1000 \\
& & & & \\
-0&17& \livelink{chap:DWOPswap}{DW\-\_OP\-\_swap} &0&29 \\
+0&17& \livelink{chap:DWOPswap}{DW\_OP\_swap} &0&29 \\
1&29& & 1&17 \\
2&1000 & & 2&1000 \\
& & & & \\
-0&17&\livelink{chap:DWOProt}{DW\-\_OP\-\_rot} & 0 &29 \\
+0&17&\livelink{chap:DWOProt}{DW\_OP\_rot} & 0 &29 \\
1&29 & & 1 & 1000 \\
2& 1000 & & 2 & 17 \\
\end{longtable}
by the ABI authoring committee for each architecture.
}
\begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPreg0}{DW\-\_OP\-\_reg0}, \livetarg{chap:DWOPreg1}{DW\-\_OP\-\_reg1}, ..., \livetarg{chap:DWOPreg31}{DW\-\_OP\-\_reg31}}
-The \livetarg{chap:DWOPreg}{DW\-\_OP\-\_reg}\textit{n} operations encode the names of up to 32
+\itembfnl{\livetarg{chap:DWOPreg0}{DW\_OP\_reg0}, \livetarg{chap:DWOPreg1}{DW\_OP\_reg1}, ..., \livetarg{chap:DWOPreg31}{DW\_OP\_reg31}}
+The \livetarg{chap:DWOPreg}{DW\_OP\_reg}\textit{n} operations encode the names of up to 32
registers, numbered from 0 through 31, inclusive. The object
addressed is in register \textit{n}.
-\itembfnl{\livetarg{chap:DWOPregx}{DW\-\_OP\-\_regx}}
-The \livelink{chap:DWOPregx}{DW\-\_OP\-\_regx} operation has a single unsigned LEB128 literal
+\itembfnl{\livetarg{chap:DWOPregx}{DW\_OP\_regx}}
+The \livelink{chap:DWOPregx}{DW\_OP\_regx} operation has a single unsigned LEB128 literal
operand that encodes the name of a register.
\end{enumerate}
\textit{These operations name a register location. To
fetch the contents of a register, it is necessary to use
one of the register based addressing operations, such as
-\livelink{chap:DWOPbregx}{DW\-\_OP\-\_bregx}
+\livelink{chap:DWOPbregx}{DW\_OP\_bregx}
(Section \refersec{chap:registerbasedaddressing})}.
\subsubsubsection{Implicit Location Descriptions}
that has no location in the program but is a known constant
or is computed from other locations and values in the program.
\begin{enumerate}[1. ]
-\itembfnl{\livetarg{chap:DWOPimplicitvalue}{DW\-\_OP\-\_implicit\-\_value}}
-The \livelink{chap:DWOPimplicitvalue}{DW\-\_OP\-\_implicit\-\_value} operation specifies an immediate value
+\itembfnl{\livetarg{chap:DWOPimplicitvalue}{DW\_OP\_implicit\_value}}
+The \livelink{chap:DWOPimplicitvalue}{DW\_OP\_implicit\_value} operation specifies an immediate value
using two operands: an unsigned LEB128 length, followed by
%FIXME: should this block be a reference? To what?
a \nolink{block} representing the value in the memory representation
of the target machine. The length operand gives the length
in bytes of the \nolink{block}.
-\itembfnl{\livetarg{chap:DWOPstackvalue}{DW\-\_OP\-\_stack\-\_value}}
-The \livelink{chap:DWOPstackvalue}{DW\-\_OP\-\_stack\-\_value} operation specifies that the object
+\itembfnl{\livetarg{chap:DWOPstackvalue}{DW\_OP\_stack\_value}}
+The \livelink{chap:DWOPstackvalue}{DW\_OP\_stack\_value} operation specifies that the object
does not exist in memory but its value is nonetheless known
and is at the top of the DWARF expression stack. In this form
of location description, the DWARF expression represents the
actual value of the object, rather than its location. The
-\livelink{chap:DWOPstackvalue}{DW\-\_OP\-\_stack\-\_value} operation terminates the expression.
+\livel