Now all the FORM linkages are in place.
authorDavid Anderson <davea42@earthlink.net>
Thu, 31 May 2012 17:22:26 +0000 (10:22 -0700)
committerDavid Anderson <davea42@earthlink.net>
Thu, 31 May 2012 17:22:26 +0000 (10:22 -0700)
dwarf5/latexdoc/compression.tex
dwarf5/latexdoc/datarepresentation.tex
dwarf5/latexdoc/debugsectionrelationships.tex
dwarf5/latexdoc/examples.tex
dwarf5/latexdoc/generaldescription.tex
dwarf5/latexdoc/introduction.tex
dwarf5/latexdoc/otherdebugginginformation.tex

index c5b6503..dec3358 100644 (file)
@@ -130,7 +130,7 @@ facilities such as simple relocations) are:
 
 \item A means of referencing from inside one .debug\_info
 compilation unit to another .debug\_info compilation unit
-(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, .debug\_info, and so on) in a single object file.
@@ -289,16 +289,16 @@ relocations).
 (This is a consequence of separate compilation, not a rule
 imposed by this document.)
 
-\textit{Local labels use references with form DW\-\_FORM\-\_ref4
+\textit{Local labels use references with form \livelink{chap:DWFORMref4}{DW\-\_FORM\-\_ref4}
 or 
-DW\-\_FORM\-\_ref8
+\livelink{chap:DWFORMref8}{DW\-\_FORM\-\_ref8}
 (These are affected by relocations
 so 
-DW\-\_FORM\-\_ref\-\_udata
-DW\-\_FORM\-\_ref1 and 
-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 
-DW\-\_FORM\-\_ref\-\_addr is not necessary
+\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} is not necessary
 for a local label.)}
 
 \textbf{Use of \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit} versus 
@@ -353,10 +353,10 @@ of the
 \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit} entry.
 
 
-\textbf{Use of DW\-\_FORM\-\_ref\-\_addr}
+\textbf{Use of \livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}}
 
 Use 
-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.
 
@@ -370,7 +370,7 @@ generated based on that name.
 
 When referencing into a non-section group .debug\_info,
 from another .debug\_info (from anywhere) 
-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
@@ -432,7 +432,7 @@ wa.h.
 \paragraph{Duplicate elimination example 1: DWARF section group} 
 
 \label{app:duplicateeliminationexample1dwarfsectiongroup}
-
+% FIXME: the DWFORMrefn could use rethinking
 \begin{alltt}
 ==== Section group name:
     my.compiler.company.cpp.wa.h.123456
@@ -450,9 +450,10 @@ DW.cpp.wa.h.123456.3: ! linker global symbol
 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}(DW\-\_FORM\-\_refn to DW.cpp.wa.h.123456.2)
+        \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 DW\-\_FORM\-\_refn can be used)
+            ! compact form \livetarg{chap:DWFORMrefn}{DW\-\_FORM\-\_refn} 
+            ! for n 1,2,4, or 8 can be used)
 \end{alltt}
 
 
@@ -789,26 +790,26 @@ Section \refersec{app:typesignaturecomputation1flattenedbytestream}.
 0x43 0x39 0x4e 0x00
 // Step 3: 'D' \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
 0x44 0x13
-// Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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}
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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)
     0x54 0x49
         // Step 3: 'D' \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
         0x44 0x24
-        // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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} DW\-\_FORM\-\_sdata DW\-\_ATE\-\_signed
+        // Step 4: 'A' \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} DW\-\_ATE\-\_signed
         0x41 0x3e 0x0d 0x05
         // Step 7: End of \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type} "int"
         0x00
@@ -817,9 +818,9 @@ Section \refersec{app:typesignaturecomputation1flattenedbytestream}.
 // Step 7: Second child ("y")
     // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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)
     0x52 0x49 0x02
@@ -931,7 +932,8 @@ separate type unit. The last pointer type contains a reference
 to an incomplete type N::B, which is also included here as
 a declaration, since the complete type is unknown and its
 signature is therefore unavailable. There is also a reference
-to N::C, using DW\-\_FORM\-\_sig8 to refer to the type signature
+to N::C, using 
+\livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8} to refer to the type signature
 for that type.
 
 In computing a signature for the type N::A, flatten the type
@@ -950,28 +952,28 @@ Section \refersec{app:typesignatureexample2flattenedbytestream}.
 0x43 0x39 0x4e 0x00
 // Step 3: 'D' \livelink{chap:DWTAGclasstype}{DW\-\_TAG\-\_class\-\_type}
 0x44 0x02
-// Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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}
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} DW\-\_FORM\-\_sdata DW\-\_ACCESS\-\_private
+    // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} DW\-\_ACCESS\-\_private
     0x41 0x32 0x0d 0x03
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} 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)
     0x54 0x49
         // Step 3: 'D' \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
         0x44 0x24
-        // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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} DW\-\_FORM\-\_sdata DW\-\_ATE\-\_signed
+        // Step 4: 'A' \livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} DW\-\_ATE\-\_signed
         0x41 0x3e 0x0d 0x05
         // Step 7: End of \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type} "int"
         0x00
@@ -980,11 +982,11 @@ Section \refersec{app:typesignatureexample2flattenedbytestream}.
 // Step 7: Second child ("next")
     // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} DW\-\_FORM\-\_sdata DW\-\_ACCESS\-\_private
+    // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} DW\-\_ACCESS\-\_private
     0x41 0x32 0x0d 0x03
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} 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: 'T' \livelink{chap:DWATtype}{DW\-\_AT\-\_type} (type \#3)
     0x54 0x49
@@ -1003,11 +1005,11 @@ Section \refersec{app:typesignatureexample2flattenedbytestream}.
 // Step 7: Third child ("bp")
     // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} DW\-\_FORM\-\_sdata DW\-\_ACCESS\-\_private
+    // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} DW\-\_ACCESS\-\_private
     0x41 0x32 0x0d 0x03
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} 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)
     0x54 0x49
@@ -1026,11 +1028,11 @@ Section \refersec{app:typesignatureexample2flattenedbytestream}.
 // Step 7: Fourth child ("c")
     // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
     0x44 0x0d
-    // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} DW\-\_FORM\-\_sdata DW\-\_ACCESS\-\_private
+    // Step 4: 'A' \livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} DW\-\_ACCESS\-\_private
     0x41 0x32 0x0d 0x03
-    // Step 4: 'A' \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} 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)
     0x54 0x49
@@ -1038,16 +1040,16 @@ Section \refersec{app:typesignatureexample2flattenedbytestream}.
         0x43 0x39 0x4e 0x00
         // Step 3: 'D' \livelink{chap:DWTAGstructuretype}{DW\-\_TAG\-\_structure\-\_type}
         0x44 0x13
-        // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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}
             0x44 0x0d
-            // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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)
             0x52 0x49 0x02
@@ -1056,9 +1058,9 @@ Section \refersec{app:typesignatureexample2flattenedbytestream}.
         // Step 7: Second child ("y")
             // Step 3: 'D' \livelink{chap:DWTAGmember}{DW\-\_TAG\-\_member}
             0x44 0x0d
-            // Step 4: 'A' \livelink{chap:DWATname}{DW\-\_AT\-\_name} 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} 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)
             0x52 0x49 0x02
@@ -1148,17 +1150,17 @@ tag-code
 at-code
     : <ULEB128>
 form-encoded-value
-    : DW\-\_FORM\-\_sdata value
-    : DW\-\_FORM\-\_flag value
-    : DW\-\_FORM\-\_string string
-    : DW\-\_FORM\-\_block block
-DW\-\_FORM\-\_string
+    : \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} value
+    : \livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} value
+    : \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} string
+    : \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} block
+\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}
     : '\\x08'
-DW\-\_FORM\-\_block
+\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}
     : '\\x09'
-DW\-\_FORM\-\_flag
+\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}
     : '\\x0c'
-DW\-\_FORM\-\_sdata
+\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}
     : '\\x0d'
 value
     : <SLEB128>
@@ -1242,7 +1244,7 @@ declarations and definitions. Other per\dash function compilation
 unit DWARF information (.debug\_info) points to this common
 file\dash level compilation unit using \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}.
 
-Section groups can use 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 section groups here are either deleted
 as unused or kept. There is no possibility (aside from error)
index 7d500b2..ff144eb 100644 (file)
@@ -194,9 +194,9 @@ format, the value is a 64\dash bit unsigned integer.
 \begin{center}
 \begin{tabular}{lll}
 Form & Role  \\ \hline
-DW\-\_FORM\-\_ref\-\_addr& offset in .debug\_info \\
-DW\-\_FORM\-\_sec\-\_offset& offset in a section other than .debug\_info or .debug\_str \\
-DW\-\_FORM\-\_strp&offset in .debug\_str \\
+\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}& offset in .debug\_info \\
+\livetarg{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}& offset in a section other than .debug\_info or .debug\_str \\
+\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}&offset in .debug\_str \\
 DW\-\_OP\-\_call\-\_ref&offset in .debug\_info \\
 \end{tabular}
 \end{center}
@@ -359,7 +359,7 @@ offset portion of an address.
 A 64\dash bit unique signature of the type described in this type
 unit.  
 
-\textit{An attribute that refers(using DW\-\_FORM\-\_ref\-\_sig8) to
+\textit{An attribute that refers(using \livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8}) to
 the primary type contained in this type unit uses this value.}
 
 
@@ -440,7 +440,8 @@ is an unsigned LEB128 number representing the attribute’s
 form. The series of attribute specifications ends with an
 entry containing 0 for the name and 0 for the form.
 
-The attribute form DW\-\_FORM\-\_indirect is a special case. For
+The attribute form 
+\livetarg{chap:DWFORMindirect}{DW\-\_FORM\-\_indirect} is a special case. For
 attributes with this form, the attribute value itself in the
 .debug\_info or .debug\_types section begins with an unsigned
 LEB128 number that represents its form. This allows producers
@@ -467,17 +468,17 @@ class is a set of forms which have related representations
 and which are given a common interpretation according to the
 attribute in which the form is used.
 
-Form DW\-\_FORM\-\_sec\-\_offset is a member of more than one class,
+Form \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset} is a member of more than one class,
 namely \livelink{chap:lineptr}{lineptr}, \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr} or \livelink{chap:rangelistptr}{rangelistptr}; the list
 of classes allowed by the applicable attribute in 
 Table \refersec{tab:attributeencodings}
 determines the class of the form.
 
-\textit{In DWARF V3 the forms DW\-\_FORM\-\_data4 and DW\-\_FORM\-\_data8 were
+\textit{In DWARF V3 the forms \livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and \livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} were
 members of either class constant or one of the classes \livelink{chap:lineptr}{lineptr},
 \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr} or \livelink{chap:rangelistptr}{rangelistptr}, depending on context. In
-DWARF V4 DW\-\_FORM\-\_data4 and DW\-\_FORM\-\_data8 are members of class
-constant in all cases. The new DW\-\_FORM\-\_sec\-\_offset replaces
+DWARF V4 \livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and \livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} are members of class
+constant in all cases. The new \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset} replaces
 their usage for the other classes.}
 
 Each possible form belongs to one or more of the following classes:
@@ -485,7 +486,8 @@ Each possible form belongs to one or more of the following classes:
 \begin{itemize}
 \item address \\
 Represented as an object of appropriate size to hold an
-address on the target machine (DW\-\_FORM\-\_addr). The size is
+address on the target machine 
+(\livetarg{chap:DWFORMaddr}{DW\-\_FORM\-\_addr}). The size is
 encoded in the compilation unit header 
 (see Section \refersec{datarep:compilationunitheader}).
 This address is relocatable in a relocatable object file and
@@ -496,24 +498,24 @@ Blocks come in four forms:
 
 \begin{myindentpara}{1cm}
 A 1\dash byte length followed by 0 to 255 contiguous information
-bytes (DW\-\_FORM\-\_block1).
+bytes (\livetarg{chap:DWFORMblock1}{DW\-\_FORM\-\_block1}).
 \end{myindentpara}
 
 \begin{myindentpara}{1cm}
 A 2\dash byte length followed by 0 to 65,535 contiguous information
-bytes (DW\-\_FORM\-\_block2).
+bytes (\livetarg{chap:DWFORMblock2}{DW\-\_FORM\-\_block2}).
 \end{myindentpara}
 
 
 \begin{myindentpara}{1cm}
 A 4\dash byte length followed by 0 to 4,294,967,295 contiguous
-information bytes (DW\-\_FORM\-\_block4).
+information bytes (\livetarg{chap:DWFORMblock4}{DW\-\_FORM\-\_block4}).
 \end{myindentpara}
 
 
 \begin{myindentpara}{1cm}
 An unsigned LEB128 length followed by the number of bytes
-specified by the length (DW\-\_FORM\-\_block).
+specified by the length (\livetarg{chap:DWFORMblock}{DW\-\_FORM\-\_block}).
 \end{myindentpara}
 
 In all forms, the length is the number of information bytes
@@ -524,33 +526,43 @@ debugging information entries or data bytes.
 \item constant \\
 There are six forms of constants. There are fixed length
 constant data forms for one, two, four and eight byte values
-(respectively, DW\-\_FORM\-\_data1, DW\-\_FORM\-\_data2, DW\-\_FORM\-\_data4,
-and DW\-\_FORM\-\_data8). There are also variable length constant
+(respectively, 
+\livetarg{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}, 
+\livetarg{chap:DWFORMdata2}{DW\-\_FORM\-\_data2}, 
+\livetarg{chap:DWFORMdata4}{DW\-\_FORM\-\_data4},
+and \livetarg{chap:DWFORMdata8}{DW\-\_FORM\-\_data8}). 
+There are also variable length constant
 data forms encoded using LEB128 numbers (see below). Both
-signed (DW\-\_FORM\-\_sdata) and unsigned (DW\-\_FORM\-\_udata) variable
+signed (\livetarg{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}) and unsigned 
+(\livetarg{chap:DWFORMudata}{DW\-\_FORM\-\_udata}) variable
 length constants are available
 
-The data in DW\-\_FORM\-\_data1, DW\-\_FORM\-\_data2, DW\-\_FORM\-\_data4 and
-DW\-\_FORM\-\_data8 can be anything. Depending on context, it may
+The data in \livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}, 
+\livelink{chap:DWFORMdata2}{DW\-\_FORM\-\_data2}, 
+\livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and
+\livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} 
+can be anything. Depending on context, it may
 be a signed integer, an unsigned integer, a floating\dash point
 constant, or anything else. A consumer must use context to
 know how to interpret the bits, which if they are target
 machine data (such as an integer or floating point constant)
 will be in target machine byte\dash order.
 
-\textit{If one of the DW\-\_FORM\-\_data<n> forms is used to represent a
+\textit{If one of the \livetarg{chap:DWFORMdata}{DW\-\_FORM\-\_data}<n> forms is used to represent a
 signed or unsigned integer, it can be hard for a consumer
 to discover the context necessary to determine which
 interpretation is intended. Producers are therefore strongly
-encouraged to use DW\-\_FORM\-\_sdata or DW\-\_FORM\-\_udata for signed and
+encouraged to use \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} or 
+\livelink{chap:DWFORMudata}{DW\-\_FORM\-\_udata} for signed and
 unsigned integers respectively, rather than 
-DW\-\_FORM\-\_data\textless n \textgreater.}
+\livelink{chap:DWFORMdata}{DW\-\_FORM\-\_data} \textless n \textgreater.}
 
 
 \item \livelink{chap:exprloc}{exprloc} \\
 This is an unsigned LEB128 length followed by the
 number of information bytes specified by the length
-(DW\-\_FORM\-\_exprloc). The information bytes contain a DWARF
+(\livetarg{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc}). 
+The information bytes contain a DWARF
 expression 
 (see Section \refersec{chap:dwarfexpressions}) 
 or location description 
@@ -558,7 +570,8 @@ or location description
 
 \item flag \\
 A flag is represented explicitly as a single byte of data
-(DW\-\_FORM\-\_flag) or implicitly (DW\-\_FORM\-\_flag\-\_present). In the
+(\livetarg{chap:DWFORMflag}{DW\-\_FORM\-\_flag}) or 
+implicitly (\livetarg{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present}). In the
 first case, if the flag has value zero, it indicates the
 absence of the attribute; if the flag has a non\dash zero value,
 it indicates the presence of the attribute. In the second
@@ -567,7 +580,7 @@ no value is encoded in the debugging information entry itself.
 
 \item \livelink{chap:lineptr}{lineptr} \\
 This is an offset into the .debug\_line section
-(DW\-\_FORM\-\_sec\-\_offset). It consists of an offset from the
+(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}). It consists of an offset from the
 beginning of the .debug\_line section to the first byte of
 the data making up the line number list for the compilation
 unit. 
@@ -580,7 +593,7 @@ in the 64\dash bit DWARF format, it is an 8\dash byte unsigned value
 
 \item \livelink{chap:loclistptr}{loclistptr} \\
 This is an offset into the .debug\_loc section
-(DW\-\_FORM\-\_sec\-\_offset). It consists of an offset from the
+(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}). It consists of an offset from the
 beginning of the .debug\_loc section to the first byte of
 the data making up the location list for the compilation
 unit. 
@@ -593,7 +606,7 @@ in the 64\dash bit DWARF format, it is an 8\dash byte unsigned value
 
 \item \livelink{chap:macptr}{macptr} \\
 This is an offset into the .debug\_macinfo section
-(DW\-\_FORM\-\_sec\-\_offset). It consists of an offset from the
+(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}). It consists of an offset from the
 beginning of the .debug\_macinfo section to the first byte of
 the data making up the macro information list for the compilation
 unit. 
@@ -605,7 +618,7 @@ in the 64\dash bit DWARF format, it is an 8\dash byte unsigned value
 
 \item \livelink{chap:rangelistptr}{rangelistptr} \\
 This is an offset into the .debug\_ranges section
-(DW\-\_FORM\-\_sec\-\_offset). 
+(\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}). 
 It consists of an
 offset from the beginning of the .debug\_ranges section
 to the beginning of the non\dash contiguous address ranges
@@ -633,10 +646,14 @@ reference is an offset from the first byte of the compilation
 header for the compilation unit containing the reference. There
 are five forms for this type of reference. There are fixed
 length forms for one, two, four and eight byte offsets
-(respectively, DW\-\_FORM\-\_ref1, DW\-\_FORM\-\_ref2, DW\-\_FORM\-\_ref4,
-and DW\-\_FORM\-\_ref8). There is also an unsigned variable
+(respectively, \livetarg{chap:DWFORMref1}{DW\-\_FORM\-\_ref1}, 
+\livetarg{chap:DWFORMref2}{DW\-\_FORM\-\_ref2}, 
+\livetarg{chap:DWFORMref4}{DW\-\_FORM\-\_ref4},
+and \livetarg{chap:DWFORMref8}{DW\-\_FORM\-\_ref8}). 
+There is also an unsigned variable
 length offset encoded form that uses unsigned LEB128 numbers
-(DW\-\_FORM\-\_ref\-\_udata). Because this type of reference is within
+(\livetarg{chap:DWFORMrefudata}{DW\-\_FORM\-\_ref\-\_udata}). 
+Because this type of reference is within
 the containing compilation unit no relocation of the value
 is required.
 
@@ -645,7 +662,7 @@ information entry within a .debug\_info section; in particular,
 it may refer to an entry in a different compilation unit
 from the unit containing the reference, and may refer to an
 entry in a different shared object.  This type of reference
-(DW\-\_FORM\-\_ref\-\_addr) is an offset from the beginning of the
+(\livetarg{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}) is an offset from the beginning of the
 .debug\_info section of the target executable or shared object;
 it is relocatable in a relocatable object file and frequently
 relocated in an executable file or shared object. For
@@ -658,7 +675,7 @@ unsigned value
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
 A debugging information entry that may be referenced by
-another compilation unit using DW\-\_FORM\-\_ref\-\_addr must have a
+another compilation unit using \livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr} must have a
 global symbolic name.
 
 For a reference from one executable or shared object to
@@ -670,7 +687,8 @@ or when the reference is used.
 
 The third type of reference can identify any debugging
 information type entry that has been placed in its own
-type unit. This type of reference (DW\-\_FORM\-\_ref\-\_sig8) is the
+type unit. This type of 
+reference (\livetarg{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8}) is the
 64\dash bit type signature 
 (see Section \refersec{datarep:typesignaturecomputation}) 
 that was computed
@@ -689,10 +707,13 @@ header.
 \item string \\
 A string is a sequence of contiguous non\dash null bytes followed by
 one null byte. A string may be represented immediately in the
-debugging information entry itself (DW\-\_FORM\-\_string), or may
+debugging information entry itself 
+(\livetarg{chap:DWFORMstring}{DW\-\_FORM\-\_string}), or may
 be represented as an offset into a string table contained in
-the .debug\_str section of the object file (DW\-\_FORM\-\_strp). In
-the 32\dash bit DWARF format, the representation of a DW\-\_FORM\-\_strp
+the .debug\_str section of the object file 
+(\livetarg{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}). In
+the 32\dash bit DWARF format, the representation of a 
+\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}
 value is a 4\dash byte unsigned offset; in the 64\dash bit DWARF format,
 it is an 8\dash byte unsigned offset 
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
@@ -941,31 +962,31 @@ DW\-\_CHILDREN\-\_yes&0x01 \\ \hline
 \endfoot
   \hline
 \endlastfoot
-DW\-\_FORM\-\_addr&0x01&address  \\
-DW\-\_FORM\-\_block2&0x03&block \\
-DW\-\_FORM\-\_block4&0x04&block  \\
-DW\-\_FORM\-\_data2&0x05&constant \\
-DW\-\_FORM\-\_data4&0x06&constant \\
-DW\-\_FORM\-\_data8&0x07&constant \\
-DW\-\_FORM\-\_string&0x08&string \\
-DW\-\_FORM\-\_block&0x09&block \\
-DW\-\_FORM\-\_block1&0x0a&block \\
-DW\-\_FORM\-\_data1&0x0b&constant \\
-DW\-\_FORM\-\_flag&0x0c&flag \\
-DW\-\_FORM\-\_sdata&0x0d&constant    \\
-DW\-\_FORM\-\_strp&0x0e&string         \\
-DW\-\_FORM\-\_udata&0x0f&constant         \\
-DW\-\_FORM\-\_ref\-\_addr&0x10&reference         \\
-DW\-\_FORM\-\_ref1&0x11&reference          \\
-DW\-\_FORM\-\_ref2&0x12&reference         \\
-DW\-\_FORM\-\_ref4&0x13&reference         \\
-DW\-\_FORM\-\_ref8&0x14&reference \\
-DW\-\_FORM\-\_ref\-\_udata&0x15&reference  \\
-DW\-\_FORM\-\_indirect&0x16&(see Section \refersec{datarep:abbreviationstables}) \\
-DW\-\_FORM\-\_sec\-\_offset \ddag &0x17&\livelink{chap:lineptr}{lineptr}, \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr}, \livelink{chap:rangelistptr}{rangelistptr} \\
-DW\-\_FORM\-\_exprloc \ddag &0x18&\livelink{chap:exprloc}{exprloc} \\
-DW\-\_FORM\-\_flag\-\_present \ddag &0x19&flag \\
-DW\-\_FORM\-\_ref\-\_sig8 \ddag &0x20&reference \\
+\livelink{chap:DWFORMaddr}{DW\-\_FORM\-\_addr}&0x01&address  \\
+\livelink{chap:DWFORMblock2}{DW\-\_FORM\-\_block2}&0x03&block \\
+\livelink{chap:DWFORMblock4}{DW\-\_FORM\-\_block4}&0x04&block  \\
+\livelink{chap:DWFORMdata2}{DW\-\_FORM\-\_data2}&0x05&constant \\
+\livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4}&0x06&constant \\
+\livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8}&0x07&constant \\
+\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}&0x08&string \\
+\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}&0x09&block \\
+\livelink{chap:DWFORMblock1}{DW\-\_FORM\-\_block1}&0x0a&block \\
+\livelink{chap:DWFORMdata1}{DW\-\_FORM\-\_data1}&0x0b&constant \\
+\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}&0x0c&flag \\
+\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}&0x0d&constant    \\
+\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}&0x0e&string         \\
+\livelink{chap:DWFORMudata}{DW\-\_FORM\-\_udata}&0x0f&constant         \\
+\livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}&0x10&reference         \\
+\livelink{chap:DWFORMref1}{DW\-\_FORM\-\_ref1}&0x11&reference          \\
+\livelink{chap:DWFORMref2}{DW\-\_FORM\-\_ref2}&0x12&reference         \\
+\livelink{chap:DWFORMref4}{DW\-\_FORM\-\_ref4}&0x13&reference         \\
+\livelink{chap:DWFORMref8}{DW\-\_FORM\-\_ref8}&0x14&reference \\
+\livelink{chap:DWFORMrefudata}{DW\-\_FORM\-\_ref\-\_udata}&0x15&reference  \\
+\livelink{chap:DWFORMindirect}{DW\-\_FORM\-\_indirect}&0x16&(see Section \refersec{datarep:abbreviationstables}) \\
+\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset} \ddag &0x17&\livelink{chap:lineptr}{lineptr}, \livelink{chap:loclistptr}{loclistptr}, \livelink{chap:macptr}{macptr}, \livelink{chap:rangelistptr}{rangelistptr} \\
+\livelink{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc} \ddag &0x18&\livelink{chap:exprloc}{exprloc} \\
+\livelink{chap:DWFORMflagpresent}{DW\-\_FORM\-\_flag\-\_present} \ddag &0x19&flag \\
+\livelink{chap:DWFORMrefsig8}{DW\-\_FORM\-\_ref\-\_sig8} \ddag &0x20&reference \\
  
 \end{longtable}
 \ddag  FORM new in DWARF Version 4 
@@ -2103,10 +2124,10 @@ the value consists of the form code (encoded as an unsigned
 LEB128 value) followed by the encoding of the value according
 to the form code. To ensure reproducibility of the signature,
 the set of forms used in the signature computation is limited
-to the following: DW\-\_FORM\-\_sdata
-DW\-\_FORM\-\_flag
-DW\-\_FORM\-\_string,
-and DW\-\_FORM\-\_block.
+to the following: \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}
+\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}
+\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string},
+and \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}.
 
 \item If the tag in Step 3 is one of \livelink{chap:DWTAGpointertype}{DW\-\_TAG\-\_pointer\-\_type},
 \livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type}, 
index e6b61cf..1152876 100644 (file)
@@ -34,7 +34,7 @@
   \put(280,-70){\vector( 2, 1){70}}
 
   \put(90,-150){\line(2, 1){100}}
-  \put(190,-120){\framebox(110,20){DW\-\_FORM\-\_strp (d)} }
+  \put(190,-120){\framebox(110,20){\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp} (d)} }
   \put(300,-100){\vector( 4, 1){35}}
 
   \put(190,-140){\vector(-2, -1){100}}
@@ -90,11 +90,11 @@ information entry.
 The debug\_abbrev\_offset value in the header is the offset in the
 .debug\_abbrev section of the abbreviations for that compilation unit.
 (d) .debug\_info and .debug\_types
-Attribute values of class string may have form DW\-\_FORM\-\_strp, whose
+Attribute values of class string may have form \livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}, whose
 value is the offset in the .debug\_str section of the corresponding string.
 
 \item  .debug\_info and .debug\_types \\
-Attribute values of class string may have form DW\-\_FORM\-\_strp, whose
+Attribute values of class string may have form \livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}, whose
 value is the offset in the .debug\_str section of the corresponding string.
 
 \item .debug\_loc \\
@@ -103,24 +103,24 @@ offset of a debugging information entry in the .debug\_info section.
 
 \item .debug\_info \\
 An attribute value of class \livelink{chap:loclistptr}{loclistptr} (specifically form
-DW\-\_FORM\-\_sec\-\_offset) is an offset within the .debug\_loc section of a
+\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) is an offset within the .debug\_loc section of a
 location list.
 
 \item .debug\_info \\
 An attribute value of class \livelink{chap:rangelistptr}{rangelistptr} (specifically form
-DW\-\_FORM\-\_sec\-\_offset) is an offset within the .debug\_ranges section of
+\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) is an offset within the .debug\_ranges section of
 a range list.
 
 
 \item .debug\_info \\
 An attribute value of class \livelink{chap:macptr}{macptr} (specifically form
-DW\-\_FORM\-\_sec\-\_offset) is an offset within the .debug\_macinfo section
+\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) is an offset within the .debug\_macinfo section
 of the beginning of the macro information for the referencing unit.
 
 
 \item .debug\_info \\
 An attribute value of class \livelink{chap:lineptr}{lineptr} (specifically form
-DW\-\_FORM\-\_sec\-\_offset) is an offset in the .debug\_line section of the
+\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) is an offset in the .debug\_line section of the
 beginning of the line number information for the referencing unit.
 \end{enumerate}
 
index fb6356a..2f7e167 100644 (file)
@@ -50,7 +50,7 @@ Compilation Unit 1: .debug\_info
 DW\-\_LANG\-\_C89
 0x0
 0x55
-DW\-\_FORM\-\_sec\-\_offset
+\livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}
 0x0
 \vspace{0.01cm}
 \hrule
@@ -107,37 +107,37 @@ Abbreviation Table: .debug\_abbrev
 \begin{alltt}
 \livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
 DW\-\_CHILDREN\-\_yes
-\livelink{chap:DWATname}{DW\-\_AT\-\_name}       DW\-\_FORM\-\_string
-\livelink{chap:DWATproducer}{DW\-\_AT\-\_producer}   DW\-\_FORM\-\_string
-\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir}   DW\-\_FORM\-\_string
-\livelink{chap:DWATlanguage}{DW\-\_AT\-\_language}   DW\-\_FORM\-\_data1
-\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc}     DW\-\_FORM\-\_addr
-\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc}    DW\-\_FORM\-\_data1
-\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list}  DW\-\_FORM\-\_indirect
+\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                  0
 \vspace{0.01cm}
 \hrule
 2
 \livelink{chap:DWTAGbasetype}{DW\-\_TAG\-\_base\-\_type}
 DW\-\_CHILDREN\-\_no
-\livelink{chap:DWATname}{DW\-\_AT\-\_name}       DW\-\_FORM\-\_string
-\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}   DW\-\_FORM\-\_data1
-\livelink{chap:DWATbytesize}{DW\-\_AT\-\_byte\-\_size}  DW\-\_FORM\-\_data1
+\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}
 DW\-\_CHILDREN\-\_no
-\livelink{chap:DWATtype}{DW\-\_AT\-\_type}       DW\-\_FORM\-\_ref4
+\livelink{chap:DWATtype}{DW\-\_AT\-\_type}       \livelink{chap:DWFORMref4}{DW\-\_FORM\-\_ref4}
 0
 \vspace{0.01cm}
 \hrule
 4
 \livelink{chap:DWTAGtypedef}{DW\-\_TAG\-\_typedef}
 DW\-\_CHILDREN\-\_no
-\livelink{chap:DWATname}{DW\-\_AT\-\_name}      DW\-\_FORM\-\_string
-\livelink{chap:DWATtype}{DW\-\_AT\-\_type}      DW\-\_FORM\-\_ref\-\_addr
+\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
index 7bed20d..03ede65 100644 (file)
@@ -889,7 +889,7 @@ must be performed by the consumer.
 
 \textit{Operand interpretation of
 DW\-\_OP\-\_call2, DW\-\_OP\-\_call4 and DW\-\_OP\-\_call\-\_ref is exactly like
-that for DW\-\_FORM\-\_ref2, DW\-\_FORM\-\_ref4 and DW\-\_FORM\-\_ref\-\_addr,
+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}).  
 }
index bfa0345..cc6ef06 100644 (file)
@@ -140,8 +140,8 @@ compute the location where a value is found (such as an address in memory or a r
 name) from DWARF expressions, which compute a final value (such as an array bound).
 \item Add support for bundled instructions on machine architectures where instructions do not
 occupy a whole number of bytes.
-\item Add a new attribute form for section offsets, DW\-\_FORM\-\_sec\-\_offset, to replace the use
-of DW\-\_FORM\-\_data4 and DW\-\_FORM\-\_data8 for section offsets.
+\item Add a new attribute form for section offsets, \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}, to replace the use
+of \livelink{chap:DWFORMdata4}{DW\-\_FORM\-\_data4} and \livelink{chap:DWFORMdata8}{DW\-\_FORM\-\_data8} for section offsets.
 \item Add an attribute, \livelink{chap:DWATmainsubprogram}{DW\-\_AT\-\_main\-\_subprogram}, to identify the main subprogram of a
 program.
 \item Define default array lower bound values for each supported language.
@@ -219,7 +219,7 @@ is defined to increase the possible size of DWARF descriptions
 (see Section 7.4).
 
 \item
-References that use the attribute form DW\-\_FORM\-\_ref\-\_addr
+References that use the attribute form \livelink{chap:DWFORMrefaddr}{DW\-\_FORM\-\_ref\-\_addr}
 are specified to be four bytes in the DWARF 32-bit format and
 eight bytes in the DWARF 64-bit format, while DWARF Version
 2 specifies that such references have the same size as an
index baa6b78..40be30e 100644 (file)
@@ -1573,7 +1573,7 @@ register and offset.
 
 \item \textbf{DW\-\_CFA\-\_def\-\_cfa\-\_expression} \\
 The DW\-\_CFA\-\_def\-\_cfa\-\_expression instruction takes a single
-operand encoded as a DW\-\_FORM\-\_exprloc value representing a
+operand encoded as a \livelink{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc} value representing a
 DWARF expression. The required action is to establish that
 expression as the means by which the current CFA is computed.
 See 
@@ -1647,7 +1647,7 @@ where R is the second register.
 \item \textbf{DW\-\_CFA\-\_expression} \\
 The DW\-\_CFA\-\_expression instruction takes two operands: an
 unsigned LEB128 value representing a register number, and
-a DW\-\_FORM\-\_block value representing a DWARF expression. The
+a \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} value representing a DWARF expression. The
 required action is to change the rule for the register
 indicated by the register number to be an expression(E)
 rule where E is the DWARF expression. That is, the DWARF
@@ -1662,7 +1662,7 @@ expression operators that can be used.
 \item \textbf{DW\-\_CFA\-\_val\-\_expression} \\
 The DW\-\_CFA\-\_val\-\_expression instruction takes two operands:
 an unsigned LEB128 value representing a register number, and
-a DW\-\_FORM\-\_block value representing a DWARF expression. The
+a \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} value representing a DWARF expression. The
 required action is to change the rule for the register
 indicated by the register number to be a val\_expression(E)
 rule where E is the DWARF expression. That is, the DWARF