Backup of working files incorporating changes from editorial review
[dwarf-doc.git] / dwarf5 / latexdoc / otherdebugginginformation.tex
index 86e9c86..7f4d113 100644 (file)
@@ -500,7 +500,8 @@ Figure~\ref{fig:nameindexlayoutpart1}: Name Index Layout \textit{(concluded)}
 \end{figure}
 
 The formats of the header and the hash lookup table are described
-below, in Section \refersec{chap:datarepresentationofthenameindex}.
+\bbeb
+in Section \refersec{chap:datarepresentationofthenameindex}.
 
 The list of CUs and the list of local TUs are each an array of
 offsets, each of which is the offset of a compile unit or a type unit
@@ -637,7 +638,10 @@ declaration of that type.}
 \subsubsection{Data Representation of the Name Index}
 \label{chap:datarepresentationofthenameindex}
 The name index is placed in a section named \dotdebugnames, and
-consists of the eight parts described below.
+consists of the eight parts described
+\bb
+in the following sections.
+\eb
 
 \subsubsubsection{Section Header}
 The section header contains the following fields:
@@ -904,7 +908,7 @@ This header is followed by a variable number of address range
 descriptors. Each descriptor is a triple consisting of a
 segment selector, the beginning address within that segment
 of a range of text or data covered by some entry owned by
-the corresponding compilation unit, followed by the non\dash zero
+the corresponding compilation unit, followed by the non-zero
 length of that range. A particular set is terminated by an
 entry consisting of three zeroes. 
 When the \HFNsegmentselectorsize{} value
@@ -1040,7 +1044,7 @@ generated by the compiler. \\
 
 \addttindex{op\_index} &
 An unsigned integer representing the index of an operation within a VLIW
-instruction. The index of the first operation is 0. For non\dash VLIW
+instruction. The index of the first operation is 0. For non-VLIW
 architectures, this register will always be 0.  \\
 
 \addttindex{file} &
@@ -1150,10 +1154,14 @@ These have a \HFTubyte{} opcode field and no operands.\vspace{1ex}
 \textit{Most of the instructions in a 
 line number program are special opcodes.}
 
+\needlines{6}
 \item standard opcodes \\
 These have a \HFTubyte{} opcode field which may be followed by zero or more
 \addtoindex{LEB128} operands (except for 
-\mbox{\DWLNSfixedadvancepc,} see below).
+\mbox{\DWLNSfixedadvancepc,} see 
+\bb
+Section \refersec{chap:standardopcodes}).
+\eb
 The opcode implies the number of operands and their meanings, but the
 line number program header also specifies the number of operands for
 each standard opcode.
@@ -1366,7 +1374,12 @@ goals:}
     Each description consists of a pair of ULEB128 values:
 \begin{itemize}
 \setlength{\itemsep}{0em}
-\item A content type code (see below)
+\item A content type code (see 
+\bb
+Sections \refersec{chap:standardcontentdescriptions} and
+\refersec{chap:vendordefinedcontentdescriptions}).
+\eb
+
 \item A form code using the attribute form codes
 \end{itemize}
 
@@ -1466,6 +1479,7 @@ share a single copy of the current file name string.}
 \end{enumerate}
 
 \subsubsection{Standard Content Descriptions}
+\label{chap:standardcontentdescriptions}
 DWARF-defined content type codes are used to indicate
 the type of information that is represented in one
 component of an include directory or file name description.
@@ -1537,6 +1551,7 @@ of the file contents. It is paired with form \DWFORMdatasixteen.
 is found in Appendix \refersec{app:linenumberheaderexample}.}
 
 \subsubsection{Vendor-defined Content Descriptions}
+\label{chap:vendordefinedcontentdescriptions}
 Vendor-defined content descriptions may be defined using content
 type codes in the range \DWLNCTlouserTARG{} to \DWLNCThiuserTARG{}. Each
 such code may be combined with one or more forms from the set:
@@ -1552,7 +1567,7 @@ it were not present.
 
 \needlines{6}
 \subsection{The Line Number Program}
-\label{linenumberprogram}
+\label{chap:linenumberprogram}
 As stated before, the goal of a line number program is to build
 a matrix representing one compilation unit, which may have
 produced multiple sequences of target machine instructions.
@@ -1745,8 +1760,6 @@ takes no operands.
 It sets the \addttindex{basic\_block} register of the
 state machine to \doublequote{true.}
 
-
-
 \item \textbf{\DWLNSconstaddpcTARG} \\
 The \DWLNSconstaddpcNAME{} opcode takes
 no operands. It advances the \texttt{address} and \addttindex{op\_index} registers
@@ -2063,7 +2076,7 @@ The contents of the operands are described below (see Sections
 \end{enumerate}
 
 \subsubsection{Macro Source Line Number}
-\label{char:macrosourcelinenumber}
+\label{chap:macrosourcelinenumber}
 In all define and undefine macro information entries,
 as well as the \DWMACROstartfile{} entry,
 the line number of the entry occurs is encoded as an
@@ -2150,7 +2163,7 @@ ending of an included file.
 A \DWMACROstartfileNAME{} entry has two operands. The
 first operand encodes the line number of the source line on
 which the \texttt{\#include} macro directive occur
-(see Section \refersec{char:macrosourcelinenumber}).
+(see Section \refersec{chap:macrosourcelinenumber}).
 The second operand encodes a source file name index. 
 
 The source file name index is the file number in the 
@@ -2505,7 +2518,10 @@ A
 constant that is factored out of all advance location
 instructions (see 
 Section \refersec{chap:rowcreationinstructions}).
-
+\bb
+The resulting value is  
+\mbox{\textit{(operand} * \HFNcodealignmentfactor)}.
+\eb
 
 \item  \HFNdataalignmentfactor{} (signed LEB128)
 \addtoindexx{LEB128!signed}\addtoindexx{signed LEB128|see{LEB128, signed}} \\
@@ -2513,7 +2529,12 @@ Section \refersec{chap:rowcreationinstructions}).
 A 
 \addtoindexx{\textless daf\textgreater|see{data alignment factor}}
 constant that is factored out of certain offset instructions
-(see below). The resulting value is  \textit{(operand} *
+(see 
+\bb
+Sections \refersec{chap:cfadefinitioninstructions} and 
+\refersec{chap:registerruleinstructions}).
+\eb
+The resulting value is  \textit{(operand} *
 \HFNdataalignmentfactor).
 
 \item  \HFNreturnaddressregister{} (unsigned LEB128)\addtoindexx{LEB128!unsigned} \\
@@ -2572,12 +2593,15 @@ The number
 of bytes of program instructions described by this entry.
 
 \item \HFNinstructions{} (array of \HFTubyte) \\
-A sequence of table defining instructions that are described below.
+A sequence of table defining instructions that are described 
+\bb
+in Section \refersec{chap:callframeinstructions}.
+\eb
 
 \needlines{4}
 \item \HFNpadding{} (array of \HFTubyte) \\
 Enough \DWCFAnop{} instructions 
-to make the size of this entry match the length value above.
+to make the size of this entry match the \HFNlength{} value above.
 \end{enumerate}
 
 \needlines{8}
@@ -2600,8 +2624,13 @@ operators cannot be used in such operands:
 
 
 \begin{itemize}
-\item \DWOPcalltwo, \DWOPcallfour{} 
-and \DWOPcallref{} operators are 
+\item
+\bb
+\DWOPaddrx, \DWOPcalltwo, \DWOPcallfour{}, \DWOPcallref, 
+\DWOPconsttype, \DWOPconstx, \DWOPconvert, \DWOPdereftype, 
+\DWOPregvaltype{} and \DWOPreinterpret{}
+\eb
+operators are 
 not allowed in an operand of these instructions because
 the call frame information must not depend on other
 debug sections.
@@ -2634,7 +2663,7 @@ current row. The new location value is always greater than
 the current one. 
 If the \HFNsegmentselectorsize{} field of this FDE's 
 \addtoindex{CIE}
-is non\dash zero, the initial location is preceded by a segment
+is non-zero, the initial location is preceded by a segment
 selector of the given length.
 
 \needlines{4}
@@ -2669,14 +2698,14 @@ and size of the delta operand.
 
 \end{enumerate}
 
-\label{chap:cfadefinitioninstructions}
 \subsubsection{CFA Definition Instructions}
+\label{chap:cfadefinitioninstructions}
 \begin{enumerate}[1. ]
 
 \item \textbf{\DWCFAdefcfaTARG} \\
 The \DWCFAdefcfaNAME{}
 instruction takes two unsigned LEB128\addtoindexx{LEB128!unsigned}
-operands representing a register number and a (non\dash factored)
+operands representing a register number and a (non-factored)
 offset. The required action is to define the current CFA rule
 to use the provided register and offset.