Bring up to date with approved issues as of April 2014.
[dwarf-doc.git] / dwarf5 / latexdoc / introduction.tex
index 0d5ca4e..f467518 100644 (file)
@@ -131,14 +131,35 @@ to read and process files generated according to a later
 version of this standard or which contain vendor extensions,
 albeit possibly in a degraded manner.
 
-
-\section{Changes from Version 3 to Version 4}
+\section{Changes from Version 4 to Version 5}
+\addtoindexx{DWARF Version 5}
 The following is a list of the major changes made to the DWARF Debugging Information
-Format since Version 3 was published. The list is not meant to be exhaustive.
+Format since Version 4 was published. The list is not meant to be exhaustive.
+\begin{itemize}
+\item TBD...
+\item Added a new attribute, \DWATrank{}, to describe the dimensionality of
+an array with dynamic rank.
+\item Added a new tag, \DWTAGgenericsubrange{}, to describe the
+bounds of Fortran assumed-rank arrays.
 
+\end{itemize}
 
+DWARF Version 5 is compatible with DWARF Version 4 except as follows:
 \begin{itemize}
+\item A location list entry (see Section \refersec{chap:locationlists}) with 
+the address range (0, \doublequote{-1}) is defined as the new default location 
+list entry.
+\item In a string type (see Section \refersec{chap:stringtypeentries}), a \DWATbytesize{}
+attribute is defined to always describe the size of the string type. (Previously
+it described the size of the optional string length data field if the \DWATstringlength{}
+attribute was present.)
+\end{itemize}
 
+\section{Changes from Version 3 to Version 4}
+\addtoindexx{DWARF Version 4}
+The following is a list of the major changes made to the DWARF Debugging Information
+Format since Version 3 was published. The list is not meant to be exhaustive.
+\begin{itemize}
 \item Reformulate 
 Section 2.6 (Location Descriptions) 
 to better distinguish DWARF location descriptions, which
@@ -147,14 +168,14 @@ name) from DWARF expressions, which compute a final value (such as an array boun
 \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, \livelink{chap:DWFORMsecoffset}{DW\_FORM\_sec\_offset}
+section offsets, \DWFORMsecoffset
 \addtoindexx{section 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
+of \DWFORMdatafour{} and \DWFORMdataeight{} for section offsets.
+\item Add an attribute, \DWATmainsubprogram, to identify the main subprogram of a
 program.
 \item Define default array lower bound values for each supported language.
-\item Add a new technique using separate type units, type signatures and COMDAT sections to
+\item Add a new technique using separate type units, type signatures and \COMDAT{} sections to
 improve compression and duplicate elimination of DWARF information.
 \item Add support for new C++ language constructs, including rvalue references, generalized
 constant expressions, Unicode character types and template aliases.
@@ -177,52 +198,42 @@ and interpretation of other data in the section.
 \end{itemize}
 
 \section{Changes from Version 2 to Version 3}
+\addtoindexx{DWARF Version 3}
 The following is a list of the major differences between
 Version 2 and Version 3 of the DWARF Debugging Information
 Format. The list is not meant to be exhaustive.
-
 \begin{itemize}
 \item
 Make provision for DWARF information files that are larger
 than 4 GBytes.
-
 \item
 Allow attributes to refer to debugging information entries
 in other shared libraries.
-
 \item
 Add support for \addtoindex{Fortran 90} modules as well as allocatable
 array and pointer types.
-
 \item
 Add additional base types for \addtoindex{C} (as revised for 1999).
-
 \item
 Add support for \addtoindex{Java} and \addtoindex{COBOL}.
-
 \item
 Add namespace support for \addtoindex{C++}.
-
 \item
 Add an optional section for global type names (similar to
 the global section for objects and functions).
-
 \item
 Adopt \addtoindex{UTF-8} as the preferred representation of program name strings.
 \item
 Add improved support for optimized code (discontiguous
 scopes, end of prologue determination, multiple section
 code generation).  
-
 \item Improve the ability to eliminate
 duplicate DWARF information during linking.  
-
 \end{itemize}
 
 \addtoindex{DWARF Version 3}
 is compatible with 
 \addtoindex{DWARF Version 2} except as follows:
-
 \begin{itemize}
 \item
 Certain very large values of the initial length fields that
@@ -230,10 +241,9 @@ begin DWARF sections as well as certain structures are reserved
 to act as escape codes for future extension; one such extension
 is defined to increase the possible size of DWARF descriptions
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
-
 \item
 References that use the attribute form 
-\livelink{chap:DWFORMrefaddr}{DW\_FORM\_ref\_addr}
+\DWFORMrefaddr{}
 are specified to be four bytes in the DWARF 32-bit format and
 eight bytes in the DWARF 64-bit format, while 
 \addtoindex{DWARF Version 2} 
@@ -241,16 +251,13 @@ specifies that such references have the same size as an
 address on the target system (see Sections 
 \refersec{datarep:32bitand64bitdwarfformats} and 
 \refersec{datarep:attributeencodings}).
-
 \item
 The return\_address\_register field in a Common Information
 Entry record for call frame information is changed to unsigned
 LEB representation (see Section 
 \refersec{chap:structureofcallframeinformation}).
-
 \end{itemize}
 
-
 \section{Changes from Version 1 to Version 2}
 \addtoindex{DWARF Version 2} 
 describes the second generation of debugging