compression.tex
[dwarf-doc.git] / dwarf5 / latexdoc / introduction.tex
index bfa0345..7c0d64b 100644 (file)
@@ -24,17 +24,22 @@ designed to meet the symbolic, source-level debugging needs of
 different languages in a unified fashion by requiring language
 independent debugging information whenever possible.  
 Aspects
-of individual languages, such as C++ virtual functions or
-Fortran common blocks, are accommodated by creating attributes
+of individual languages, such as \addtoindex{C++} virtual functions or
+\addtoindex{Fortran} common 
+\nolink{blocks}, are accommodated by creating attributes
 that are used only for those languages. 
 This document is
-believed to cover most debugging information needs of Ada,
-C, C++, COBOL, and Fortran; it also covers the basic needs
+believed to cover most debugging information needs of 
+addtoindex{Ada},
+\addtoindex{C}, \addtoindex{C++}, \addtoindex{COBOL}, 
+and \addtoindex{Fortran}; it also covers the basic needs
 of various other languages.
 
-This document describes DWARF Version 4, the fourth generation
+This document describes \addtoindex{DWARF Version 4},
+the fourth generation
 of debugging information based on the DWARF format. DWARF
-Version 4 extends DWARF Version 3 in a compatible manner.
+Version 4 extends \addtoindex{DWARF Version 3}
+in a compatible manner.
 
 The intended audience for this document is the developers
 of both producers and consumers of debugging information,
@@ -72,7 +77,8 @@ Section \refersec{datarep:datarepresentation}.
 
 This organization closely follows that used in the DWARF
 Version 3 document. Except where needed to incorporate
-new material or to correct errors, the DWARF Version 3
+new material or to correct errors, the 
+\addtoindex{DWARF Version 3}
 text is generally reused in this document with little or
 no modification.
 
@@ -103,7 +109,7 @@ All
 names and values not reserved for vendor additions, however,
 are reserved for future versions of this document.
 
-DWARF Version 5 is intended to be permissive rather than
+\addtoindex{DWARF Version 5} is intended to be permissive rather than
 prescriptive. 
 Where this specification provides a means for
 describing the source language, implementors are expected
@@ -140,8 +146,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.
@@ -154,10 +160,12 @@ constant expressions, Unicode character types and template aliases.
 \item Add additional support for template parameters in instantiations.
 \item Add support for strongly typed enumerations in languages (such as C++) that have two
 kinds of enumeration declarations.
-DWARF Version 4 is compatible with DWARF Version 3 except as follows:
+\addtoindex{DWARF Version 4} is compatible with 
+\addtoindex{DWARF Version 3} except as follows:
 \item DWARF attributes that use any of the new forms of attribute value representation (for
 section offsets, flag compression, type signature references, and so on) cannot be read by
-DWARF Version 3 consumers because the consumer will not know how to skip over the
+\addtoindex{DWARF Version 3}
+consumers because the consumer will not know how to skip over the
 unexpected form of data.
 \item DWARF frame and line table sections include a additional fields that affect the location
 and interpretation of other data in the section.
@@ -184,13 +192,13 @@ Add support for Fortran 90 modules as well as allocatable
 array and pointer types.
 
 \item
-Add additional base types for C (as revised for 1999).
+Add additional base types for \addtoindex{C} (as revised for 1999).
 
 \item
-Add support for Java and COBOL.
+Add support for \addtoindex{Java} and \addtoindex{COBOL}.
 
 \item
-Add namespace support for C++.
+Add namespace support for \addtoindex{C++}.
 
 \item
 Add an optional section for global type names (similar to
@@ -208,7 +216,9 @@ duplicate DWARF information during linking.
 
 \end{itemize}
 
-DWARF Version 3 is compatible with DWARF Version 2 except as follows:
+\addtoindex{DWARF Version 3}
+is compatible with 
+\addtoindex{DWARF Version 2} except as follows:
 
 \begin{itemize}
 \item
@@ -219,10 +229,11 @@ 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
+eight bytes in the DWARF 64-bit format, while 
+\addtoindex{DWARF Version 2} 
+specifies that such references have the same size as an
 address on the target system (see Sections 7.4 and 7.5.4).
 
 \item
@@ -234,9 +245,11 @@ LEB representation (see Section 6.4.1).
 
 
 \section[Changes Version1 to 2]{Changes from Version 1 to Version 2}
-DWARF Version 2 describes the second generation of debugging
-information based on the DWARF format. While DWARF Version
-2 provides new debugging information not available in
+\addtoindex{DWARF Version 2} 
+describes the second generation of debugging
+information based on the DWARF format. While 
+\addtoindex{DWARF Version 2}
+provides new debugging information not available in
 Version 1, the primary focus of the changes for Version
 2 is the representation of the information, rather than
 the information content itself. The basic structure of
@@ -257,11 +270,15 @@ Version 2 DWARF information is not binary compatible with
 Version 1 information. To make it easier for consumers to
 support both Version 1 and Version 2 DWARF information, the
 Version 2 information has been moved to a different object
-file section, .debug\_info.  
+file section, \addtoindex{.debug\_info}.  
 
 \textit{
 A summary of the major changes
-made in DWARF Version 2 compared to the DWARF Version 1 may
-be found in the DWARF Version 2 document
+made in 
+\addtoindex{DWARF Version 2}
+compared to the DWARF Version 1 may
+be found in the 
+\addtoindex{DWARF Version 2}
+document
 }