Incorporate 161122.1, the fixed sized variants of DW_FORM_strx.
authorRon Brender <ron.brender@gmail.com>
Wed, 18 Jan 2017 14:07:48 +0000 (09:07 -0500)
committerRon Brender <ron.brender@gmail.com>
Wed, 18 Jan 2017 14:07:48 +0000 (09:07 -0500)
Signed-off-by: Ron Brender <ron.brender@gmail.com>
dwarf5/latexdoc/changesummary.tex
dwarf5/latexdoc/datarepresentation.tex
dwarf5/latexdoc/debugsectionrelationships.tex
dwarf5/latexdoc/dwarf5.tex
dwarf5/latexdoc/dwarfnamecmds.tex
dwarf5/latexdoc/generaldescription.tex
dwarf5/latexdoc/introduction.tex
dwarf5/latexdoc/otherdebugginginformation.tex
dwarf5/latexdoc/programscope.tex
dwarf5/latexdoc/splitobjects.tex

index 227a27e..95b4d23 100644 (file)
@@ -15,7 +15,8 @@ This change summary is included only in draft versions of this document.
 \begin{longtable}{ll}
 \textbf{Date}  & \textbf{Issue Incorporated or Other Change}   \\ \hline       \\
 \endhead
-1/162017        & Changes from meeting of 1/3/2017 \\
+1/18/2017       % 161122.1 (fixed size variants of \DWFORMstrxNAM) \\
+1/16/2017       & Changes from meeting of 1/3/2017 \\
 12/18/2016      & Changes from meeting of 12/6/2016 \\
 10/10-11/26/2016& Miscellaneous editorial tweaks during public review \\
 10/6/2016       & Prepare Public Review Draft, delete bullet 7 in 7.4, other tweaks. \\
index 5313e51..75c8db1 100644 (file)
@@ -277,13 +277,19 @@ used by the \dotdebuginfo{} section.
 \item
 A string table, in the \dotdebugstr{} section. The string
 table is necessary only if the skeleton compilation unit
-uses either indirect string form, \DWFORMstrp{} or
-\DWFORMstrx.
+\bb
+uses one of the indirect string forms (\DWFORMstrp{}, 
+\DWFORMstrxXNor).
+\eb
 \item
 A string offsets table, in the \dotdebugstroffsets{}
 section for strings in the \dotdebugstr{} section. 
 The string offsets table is necessary only if
-the skeleton compilation unit uses the \DWFORMstrx{} form.
+the skeleton compilation unit uses 
+\bb
+one of the indexed string forms 
+\eb
+(\DWFORMstrxXN).
 \end{itemize}
 The attributes contained in the skeleton compilation
 unit can be used by a DWARF consumer to find the 
@@ -425,8 +431,11 @@ files, and combined, section by section:
 \end{alltt}
 
 The string table section in \dotdebugstrdwo{} contains all the
-strings referenced from DWARF attributes using the form
-\DWFORMstrx. Any attribute in a compilation unit or a type
+strings referenced from DWARF attributes using 
+\bb
+any of the forms
+\eb
+\DWFORMstrxXNor. Any attribute in a compilation unit or a type
 unit using this form refers to an entry in that unit's
 contribution to the \dotdebugstroffsetsdwo{} section, which in turn
 provides the offset of a string in the \dotdebugstrdwo{}
@@ -1244,7 +1253,6 @@ null entries.
 
 \subsection{Abbreviations Tables}
 \label{datarep:abbreviationstables}
-
 The abbreviations tables for all compilation units
 are contained in a separate object file section called
 \dotdebugabbrev{}.
@@ -1267,7 +1275,7 @@ number that encodes the entry\textquoteright s tag. The encodings for the
 tag names are given in 
 Table \refersec{tab:tagencodings}.
 
-\needlines{6}
+\needlines{10}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|c}
@@ -2207,10 +2215,19 @@ it is an 8-byte unsigned offset
 \needlines{6}
 \item as an indirect offset into the string table using an 
 index into a table of offsets contained in the 
-\dotdebugstroffsets{} section of the object file (\DWFORMstrxTARG).
+\dotdebugstroffsets{} section of the object file 
+\bb
+(\DWFORMstrxTARG, \DWFORMstrxoneTARG, \DWFORMstrxtwoTARG, \DWFORMstrxthreeTARG{} and \DWFORMstrxfourTARG).
+\eb
 The representation of a \DWFORMstrxNAME{} value is an unsigned 
 \addtoindex{LEB128} value, which is interpreted as a zero-based 
-index into an array of offsets in the \dotdebugstroffsets{} section. 
+index into an array of offsets in the \dotdebugstroffsets{} section.
+\bb
+The representation of a \DWFORMstrxoneNAME, \DWFORMstrxtwoNAME, 
+\DWFORMstrxthreeNAME{} or \DWFORMstrxfourNAME{} value is a 
+1-, 2-, 3- or 4-byte unsigned integer value, respectively,
+which is similarly interpretated.
+\eb 
 The offset entries in the \dotdebugstroffsets{} section have the 
 same representation as \DWFORMstrp{} values.
 \end{itemize}
@@ -2320,6 +2337,12 @@ Table \referfol{tab:attributeformencodings}.
 \DWFORMloclistx~\ddag &0x22 &\CLASSloclist \\
 \DWFORMrnglistx~\ddag &0x23 &\CLASSrnglist \\
 \DWFORMrefsupeight{}~\ddag &0x24 &\CLASSreference \\
+\bb
+\DWFORMstrxone{}~\ddag   &0x25 &\CLASSstring \\
+\DWFORMstrxtwo{}~\ddag   &0x26 &\CLASSstring \\
+\DWFORMstrxthree{}~\ddag &0x27 &\CLASSstring \\
+\eb
+\DWFORMstrxfour{}~\ddag  &0x28 &\CLASSstring \\
 \end{longtable}
 \end{centering}
 
@@ -2933,6 +2956,7 @@ Table \refersec{tab:identifiercaseencodings}.
 \end{longtable}
 \end{centering}
 
+\needlines{8}
 \section{Calling Convention Encodings}
 \label{datarep:callingconventionencodings}
 The encodings of the constants used in the 
@@ -2998,6 +3022,7 @@ Table \refersec{tab:inlineencodings}.
 % this clearpage is ugly, but the following table came
 % out oddly without it.
 
+\needlines{10}
 \section{Array Ordering}
 \label{datarep:arrayordering}
 
@@ -3063,8 +3088,9 @@ Table \refersec{tab:discriminantdescriptorencodings}.
 The \addtoindexi{version number}{version number!name index table}
 in the name index table header is \versiondotdebugnames{}.
 
-The name index attributes and their encodings are listed in Table \referfol{datarep:indexattributeencodings}.
+The name index attributes and their encodings are listed in Table \refersec{datarep:indexattributeencodings}.
 
+\needlines{14}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|c|l}
index cc54943..4bb607a 100644 (file)
@@ -68,7 +68,7 @@ or shareable file and a related \addtoindex{supplementary object file}.
 \node(zlinkd)   at (5, 12.1)  [link] {\DWFORMstrp{}~~(d)};
 \node(zlinke)  at (5, 10.4)  [link] {\begin{tabular}{c}
                                      \DWATstroffsetsbase \\
-                                     \DWFORMstrx{}~~~~~~~~~(e) \\
+                                     \DWFORMstrx\textit{[1,2,3,4]}{}~(e) \\
                                      \end{tabular}};
 \node(zlinkf)   at (5,  8.4)  [link] {\begin{tabular}{c}
                                      \DWOPcallref{}~~~~~(f) \\
@@ -215,8 +215,11 @@ DIE is the offset in the
 \dotdebugstroffsets{} section of the 
 \addtoindex{string offsets table}
 for that unit.
-In addition, attribute values of class string may have form 
-\DWFORMstrx, whose value is an index into the
+In addition, attribute values of class string may have 
+\bb
+one of the forms
+\eb 
+\DWFORMstrxXNor, whose value is an index into the
 string offsets table.
 
 %f
@@ -466,14 +469,20 @@ Attribute values of class string may have form
 \dotdebugstrdwo{} section of the corresponding string.
 
 \itembfnl{(e) \dotdebuginfo{} to \dotdebugstroffsets}
-Attribute values of class string may have form 
-\DWFORMstrx, whose value is an index into  the 
+Attribute values of class string may have 
+\bb
+one of the forms
+\eb 
+\DWFORMstrxXNor, whose value is an index into the 
 \dotdebugstroffsets{} section for the corresponding string.
 
 \needlines{4}
 \itembfnl{(eo)\dotdebuginfodwo{} to \dotdebugstroffsetsdwo}
-Attribute values of class string may have form 
-\DWFORMstrx, whose value is an index into  the 
+Attribute values of class string may have 
+\bb
+one of the forms
+\eb 
+\DWFORMstrxXNor, whose value is an index into the 
 \dotdebugstroffsetsdwo{} section for the corresponding string.
 
 \itembfnl{(fo) \dotdebuginfodwo{} to \dotdebuginfodwo}
index 4dafa08..a17b864 100644 (file)
@@ -3,7 +3,7 @@
 % If draft is in the document class list, pix are just suggested
 % by an outline, the pic does not appear as a picture.
 %
-\newcommand{\docdate}{January 16, 2017}
+\newcommand{\docdate}{January 18, 2017}
 %
 \usepackage{ifthen}
     \newcommand{\ifthen}[2]{\ifthenelse{#1}{#2}{}}
index b5b8450..79f0d18 100644 (file)
 \newdwfnamecommands{DWFORMstrp}{DW\_FORM\_strp}
 \newdwfnamecommands{DWFORMstrpsup}{DW\_FORM\_strp\_sup}
 \newdwfnamecommands{DWFORMstrx}{DW\_FORM\_strx}
+\newdwfnamecommands{DWFORMstrxone}{DW\_FORM\_strx1}
+\newdwfnamecommands{DWFORMstrxtwo}{DW\_FORM\_strx2}
+\newdwfnamecommands{DWFORMstrxthree}{DW\_FORM\_strx3}
+\newdwfnamecommands{DWFORMstrxfour}{DW\_FORM\_strx4}
 \newdwfnamecommands{DWFORMudata}{DW\_FORM\_udata}
+% Helpers for lists of strx forms
+\newcommand{\DWFORMstrxN}   {\bb\DWFORMstrxone, \DWFORMstrxtwo, \DWFORMstrxthree, \DWFORMstrxfour\eb}      % fixed size
+\newcommand{\DWFORMstrxNor} {\bb\DWFORMstrxone, \DWFORMstrxtwo, \DWFORMstrxthree{} or \DWFORMstrxfour\eb}  % fixed size
+\newcommand{\DWFORMstrxNand}{\bb\DWFORMstrxone, \DWFORMstrxtwo, \DWFORMstrxthree{} and \DWFORMstrxfour\eb} % fixed size
+
+\newcommand{\DWFORMstrxXN}   {\DWFORMstrx, \DWFORMstrxN}    % all
+\newcommand{\DWFORMstrxXNor} {\DWFORMstrx, \DWFORMstrxNor}  % all
+\newcommand{\DWFORMstrxXNand}{\DWFORMstrx, \DWFORMstrxNand} % all
 %
 % DW_ID
 %
index 751b9a6..ce1fdb5 100644 (file)
@@ -51,9 +51,7 @@ described in Chapters 3, 4 and 5.
 \DWTAGformalparameter,
 \DWTAGfriend,
 \DWTAGgenericsubrange,
-\bb
-\DWTAGimmutabletype,
-\eb
+\bb\eb\DWTAGimmutabletype,
 \DWTAGimporteddeclaration,
 \DWTAGimportedmodule,
 \DWTAGimportedunit,
@@ -62,10 +60,8 @@ described in Chapters 3, 4 and 5.
 \DWTAGinterfacetype,
 \DWTAGlabel,
 \DWTAGlexicalblock,
-\bb
-\DWTAGmember,
-\DWTAGmodule,
-\eb
+\bbeb\DWTAGmember,
+\bbeb\DWTAGmodule,
 \DWTAGnamelist,
 \DWTAGnamelistitem,
 \DWTAGnamespace,
index bd2c2ca..9b0e46d 100644 (file)
@@ -416,7 +416,10 @@ In addition, the \HFNdebugabbrevoffset{} and \HFNaddresssize{} fields are reorde
 \bb
 \DWFORMrefsupfourNAME, \DWFORMrefsupeightNAME, 
 \eb
-\DWFORMstrpsupNAME{} and \DWFORMstrxNAME).
+\DWFORMstrpsupNAME, \DWFORMstrxNAME, 
+\bb
+\DWFORMstrxoneNAME, \DWFORMstrxtwoNAME, \DWFORMstrxthreeNAME{} and \DWFORMstrxfourNAME.
+\eb
 
 \textit{Because a pre-DWARF Version 5 consumer will not be able to interpret 
 these even to ignore and skip over them, new forms must be 
index 7190dd4..a3d5d52 100644 (file)
@@ -1569,8 +1569,8 @@ from an executable.
 \eb
 }
 
-In a \dotdebuglinedwo{} section, the form \DWFORMstrx{} may
-also be used. This refers into the \dotdebugstroffsetsdwo{}
+In a \dotdebuglinedwo{} section, the forms \DWFORMstrxXNand{} may
+also be used. These refer into the \dotdebugstroffsetsdwo{}
 section (and indirectly also the \dotdebugstrdwo{} section)
 because no \texttt{.debug\_line\_str\_offsets.dwo} or 
 \texttt{.debug\_line\_str.dwo} sections exist or are defined for 
@@ -1624,7 +1624,7 @@ such code may be combined with one or more forms from the set:
 \DWFORMdataone, \DWFORMdatatwo, \DWFORMdatafour, \DWFORMdataeight,
 \DWFORMdatasixteen,
 \DWFORMflag, \DWFORMlinestrp, \DWFORMsdata, \DWFORMsecoffset,
-\DWFORMstring, \DWFORMstrp, \DWFORMstrx{}  and \DWFORMudata.
+\DWFORMstring, \DWFORMstrp, \DWFORMstrxXN{} and \DWFORMudata.
 
 \textit{If a consumer encounters a vendor-defined content type that
 it does not understand, it should skip the content data as though
@@ -2078,7 +2078,7 @@ the operand is encoded.  The allowed forms are:
 \eb
 \DWFORMsecoffset, \DWFORMstring, \DWFORMstrp{}, 
 \bb
-\DWFORMstrpsup, \DWFORMstrx{} and \DWFORMudata.
+\DWFORMstrpsup, \DWFORMstrxXN{} and \DWFORMudata.
 \eb
 \end{enumerate}
 
index 87240fd..8f94a13 100644 (file)
@@ -433,7 +433,7 @@ This attribute points to the first string
 offset of the compilation unit's contribution to the
 \dotdebugstroffsets{} (or \dotdebugstroffsetsdwo{}) section. 
 Indirect string references
-(using \DWFORMstrx) within the compilation unit are
+(using \DWFORMstrxXNor) within the compilation unit are
 interpreted as indices relative to this base.
 
 \needlines{6}
@@ -636,6 +636,7 @@ the sections in which they are represented
 Moreover, the \DWATstroffsetsbase{} attribute (see below) is not 
 used in a split type unit.
 
+\needlines{4}
 A type unit is represented by a debugging information entry
 with the tag \DWTAGtypeunitTARG. 
 A \addtoindex{type unit entry} owns debugging
@@ -690,7 +691,7 @@ attribute, whose value is of class \CLASSstroffsetsptr.
 This attribute points
 to the first string offset of the type unit's contribution to
 the \dotdebugstroffsets{} section. Indirect string references
-(using \DWFORMstrx) within the type unit are interpreted
+(using \DWFORMstrxXNor) within the type unit are interpreted
 as indices relative to this base.
 
 \end{enumerate}
@@ -702,6 +703,7 @@ namespaces, the debugging information entry for T is nested
 within debugging information entries describing its containers;
 otherwise, T is a direct child of the type unit entry.
 
+\needlines{4}
 A type unit entry may also own additional debugging information
 entries that represent declarations of additional types that
 are referenced by type T and have not themselves been placed in
@@ -765,6 +767,7 @@ If the module has a name, the module entry has a
 whose value is a null\dash terminated string containing
 the module name.
 
+\needlines{4}
 The \addtoindex{module entry} may have either a 
 \DWATlowpc{} and
 \DWAThighpc{} 
@@ -1299,6 +1302,7 @@ that has neither a \DWATcallpc{} nor \DWATcallreturnpc{} attribute.
 \textit{The \DWATcallallsourcecallsNAME{} attribute is intended for debugging 
 information format consumers that analyze call graphs.}
 
+\needlines{4}
 If the the \DWATcallallsourcecalls{} attribute is present then the 
 \DWATcallallcalls{} and \DWATcallalltailcalls{} attributes are 
 also implicitly present. Similarly, if the 
index 9f34c09..c54a966 100644 (file)
@@ -87,7 +87,11 @@ section for directories and file names because the primary
 string table will never be stripped. Accordingly, no
 \texttt{.debug\_line\_str.dwo} section is defined. Content descriptions 
 corresponding to \DWFORMlinestrp{} in an executable file (for example, 
-in the skeleton compilation unit) instead use \DWFORMstrx. This allows
+in the skeleton compilation unit) instead use 
+\bb
+one of the forms
+\eb
+\DWFORMstrxXNor. This allows
 directory and file name strings to be merged with general
 strings and across compilations in package files 
 (where they are not subject to potential stripping).
@@ -146,10 +150,14 @@ skeleton compilation unit in the \dotdebuginfo{} section.
 
 \item
 \dotdebugstr{} - Contains any strings referenced by the skeleton
-\dotdebuginfo{} sections (via \DWFORMstrp{} or \DWFORMstrx{}).
+\dotdebuginfo{} sections (via \DWFORMstrp{}, \DWFORMstrxXNor{}).
 \item
 \dotdebugstroffsets{} - Contains the string offsets table for
-the strings in the \dotdebugstr{} section (if form \DWFORMstrx{} is used).
+the strings in the \dotdebugstr{} section (if 
+\bb
+one of the forms
+\eb
+\DWFORMstrxXNor{} is used).
 \end{itemize}
 
 \needlines{6}
@@ -590,7 +598,7 @@ object file, with the following exceptions:
 compilation unit.
 
 \item References to strings in the string table use the 
-form code \DWFORMstrx, referring to slots in the
+form code \DWFORMstrxXNor, referring to slots in the
 \dotdebugstroffsetsdwo{} section.
 
 \needlines{4}