More pagination cleanups using \needspace and \needlines.
[dwarf-doc.git] / dwarf5 / latexdoc / datarepresentation.tex
index a951f62..df34b70 100644 (file)
@@ -130,7 +130,7 @@ memory loaded from that shared object.
 shared objects position independent.  Virtual addresses in a
 shared object may be calculated by adding the offset to the
 base address at which the object was attached. This offset
-is available in the run\dash time linkers data structures.}
+is available in the run\dash time linker\textquoteright s data structures.}
 
 
 
@@ -308,6 +308,7 @@ interpretation of the information contained directly in the
 \addtoindex{.debug\_info} or 
 \addtoindex{.debug\_types} section.
 
+\needlines{4}
 Multiple debugging information entries may share the same
 abbreviation table entry. Each compilation unit is associated
 with a particular abbreviation table, but multiple compilation
@@ -484,7 +485,7 @@ of a debugging information entry in the
 section. As described above, the abbreviation
 code 0 is reserved for null debugging information entries. The
 abbreviation code is followed by another unsigned LEB128
-number that encodes the entrys tag. The encodings for the
+number that encodes the entry\textquoteright s tag. The encodings for the
 tag names are given in 
 Table \refersec{tab:tagencodings}.
 
@@ -574,7 +575,7 @@ has child entries or not. If the value is
 the next physically succeeding entry of any debugging
 information entry using this abbreviation is the first
 child of that entry. If the 1\dash byte value following the
-abbreviations tag encoding is 
+abbreviation\textquoteright s tag encoding is 
 \livetarg{chap:DWCHILDRENno}{DW\-\_CHILDREN\-\_no}, the next
 physically succeeding entry of any debugging information entry
 using this abbreviation is a sibling of that entry. (Either
@@ -607,8 +608,8 @@ each chain of sibling entries is terminated by a null entry.)
 Finally, the child encoding is followed by a series of
 attribute specifications. Each attribute specification
 consists of two parts. The first part is an unsigned LEB128
-number representing the attributes name. The second part
-is an unsigned LEB128 number representing the attributes
+number representing the attribute\textquoteright s name. The second part
+is an unsigned LEB128 number representing the attribute\textquoteright s
 form. The series of attribute specifications ends with an
 entry containing 0 for the name and 0 for the form.
 
@@ -763,7 +764,7 @@ encouraged to use \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} or
 unsigned integers respectively, rather than 
 \livelink{chap:DWFORMdata}{DW\-\_FORM\-\_data}\textless n\textgreater.}
 
-
+\needlines{4}
 \item \livelink{chap:exprloc}{exprloc} \\
 This is an unsigned LEB128 length followed by the
 number of information bytes specified by the length
@@ -842,6 +843,7 @@ DWARF format, this offset is a 4\dash byte unsigned value;
 in the 64\dash bit DWARF format, it is an 8\dash byte unsigned value
 (see Section \refersec{datarep:32bitand64bitdwarfformats}).
 
+\needlines{4}
 \item \livelink{chap:rangelistptr}{rangelistptr} \\
 This is an 
 \addtoindexx{section offset!in class rangelistptr value}
@@ -922,7 +924,7 @@ global symbolic name.}
 \textit{For a reference from one executable or shared object to
 another, the reference is resolved by the debugger to identify
 the shared object or executable and the offset into that
-objects \addtoindex{.debug\_info}
+object\textquoteright s \addtoindex{.debug\_info}
 section in the same fashion as the run
 time loader, either when the debug information is first read,
 or when the reference is used.}
@@ -1250,6 +1252,8 @@ Table \refersec{tab:attributeformencodings}.
 \end{longtable}
 \end{centering}
 
+
+\needlines{6}
 \section{Variable Length Data}
 \label{datarep:variablelengthdata}
 \addtoindexx{variable length data|see {LEB128}}
@@ -1290,7 +1294,7 @@ gives some examples of unsigned LEB128 numbers. The
 that an additional byte follows.
 
 
-The encoding for signed, twos complement LEB128 (SLEB128)
+The encoding for signed, two\textquoteright s complement LEB128 (SLEB128)
 \addtoindexx{LEB128!signed, encoding as}
 numbers is similar, except that the criterion for discarding
 high order bytes is not whether they are zero, but whether
@@ -1312,7 +1316,7 @@ numbers.
 \addtoindexx{LEB128!examples}
 gives algorithms for encoding and decoding these forms.}
 
-
+\needlines{8}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|l|l}
@@ -1851,6 +1855,7 @@ the
 \livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute are given in 
 Table \refersec{tab:inlineencodings}.
 
+\needlines{8}
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
 \begin{longtable}{l|c}
@@ -1874,7 +1879,7 @@ Table \refersec{tab:inlineencodings}.
 
 % this clearpage is ugly, but the following table came
 % out oddly without it.
-\clearpage
+
 \section{Array Ordering}
 \label{datarep:arrayordering}
 
@@ -1933,6 +1938,7 @@ Table \refersec{tab:discriminantdescriptorencodings}.
 \end{longtable}
 \end{centering}
 
+\needlines{6}
 \section{Name Lookup Tables}
 \label{datarep:namelookuptables}
 
@@ -2002,6 +2008,7 @@ Each set is terminated by an
 offset containing the value 0.
 
 
+\needlines{6}
 \section{Address Range Table}
 \label{datarep:addrssrangetable}
 
@@ -2122,6 +2129,7 @@ Table \refersec{tab:linenumberstandardopcodeencodings}.
 \end{centering}
 
 
+\needspace{10cm}
 The encodings for the extended opcodes are given in 
 \addtoindexx{line number opcodes!extended opcode encoding}
 Table \refersec{tab:linenumberextendedopcodeencodings}.
@@ -2164,7 +2172,6 @@ The encodings
 are given in 
 Table \refersec{tab:macinfotypeencodings}.
 
-\clearpage
 
 \begin{centering}
 \setlength{\extrarowheight}{0.1cm}
@@ -2188,6 +2195,7 @@ Table \refersec{tab:macinfotypeencodings}.
 \end{longtable}
 \end{centering}
 
+\needlines{7}
 \section{Call Frame Information}
 \label{datarep:callframeinformation}
 
@@ -2303,7 +2311,7 @@ and
 \addtoindex{.debug\_types}
 sections of an object file, or equivalent
 separate file or database. The information is not 
-word\dash aligned. Consequently: •
+word\dash aligned. Consequently:
 
 \begin{itemize}
 \item For the 32\dash bit DWARF format and a target architecture with
@@ -2377,6 +2385,7 @@ Table 41 \refersec{tab:integerrepresentationnames}.
 \end{longtable}
 \end{centering}
 
+\needlines{6}
 \section{Type Signature Computation}
 \label{datarep:typesignaturecomputation}
 
@@ -2402,7 +2411,7 @@ so that V[1] is T0.
 
 \item If the debugging information entry represents a type that
 is nested inside another type or a namespace, append to S
-the types context as follows: For each surrounding type
+the type\textquoteright s context as follows: For each surrounding type
 or namespace, beginning with the outermost such construct,
 append the letter 'C', the DWARF tag of the construct, and
 the name (taken from 
@@ -2414,10 +2423,17 @@ or namespace (including its trailing null byte).
 \item  Append to S the letter 'D', followed by the DWARF tag of
 the debugging information entry.
 
-\item For each of the following attributes that are present in
-the debugging information entry, in the order listed below,
+\item For each of the attributes in
+Table \refersec{tab:attributesusedintypesignaturecomputation}
+that are present in
+the debugging information entry, in the order listed,
 append to S a marker letter (see below), the DWARF attribute
 code, and the attribute value.
+
+\begin{table}[ht]
+\caption{Attributes used in type signature computation}
+\label{tab:attributesusedintypesignaturecomputation}
+\simplerule[\textwidth]
 \begin{center}
 \autocols[0pt]{c}{2}{l}{
 \livelink{chap:DWATname}{DW\-\_AT\-\_name},
@@ -2470,6 +2486,8 @@ code, and the attribute value.
 \livelink{chap:DWATvtableelemlocation}{DW\-\_AT\-\_vtable\-\_elem\-\_location}
 }
 \end{center}
+\simplerule[\textwidth]
+\end{table}
 
 Note that except for the initial 
 \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute,
@@ -2616,6 +2634,7 @@ a type.}
 \end{itemize}
 
 
+\needlines{4}
 \textit{Certain attributes are not included in the type signature:}
 
 \begin{itemize}