More pagination cleanups using \needspace and \needlines.
authorRon Brender <ron.brender@gmail.com>
Sun, 3 Feb 2013 15:06:13 +0000 (10:06 -0500)
committerRon Brender <ron.brender@gmail.com>
Sun, 3 Feb 2013 15:06:13 +0000 (10:06 -0500)
Signed-off-by: Ron Brender <ron.brender@gmail.com>
dwarf5/latexdoc/compression.tex
dwarf5/latexdoc/datarepresentation.tex
dwarf5/latexdoc/dwarf5.tex
dwarf5/latexdoc/examples.tex
dwarf5/latexdoc/otherdebugginginformation.tex
dwarf5/latexdoc/programscope.tex
dwarf5/latexdoc/typeentries.tex

index 229d774..8bc8996 100644 (file)
@@ -94,6 +94,7 @@ section groups:
 where each \addtoindex{section group} might or might not contain executable
 code (\textit{.text} sections) or data (\textit{.data} sections).
 
+\needlines{6}
 A \textit{\addtoindex{section group}} is a named set 
 of section contributions
 within an object file with the property that the entire set
@@ -550,7 +551,7 @@ example, consider
 Figure \refersec{fig:duplicateeliminationexample2fortransource}.
 
 \begin{figure}
-\textbf{File CommonStuff.fh}
+\textit{File CommonStuff.fh}
 \addtoindexx{Fortran}
 \begin{lstlisting}[numbers=none]
 IMPLICIT INTEGER(A-Z)
@@ -558,7 +559,7 @@ COMMON /Common1/ C(100)
 PARAMETER(SEVEN = 7)
 \end{lstlisting}
 
-\textbf{File Func.f}
+\textit{File Func.f}
 \begin{lstlisting}[numbers=none]
 FUNCTION FOO (N)
 INCLUDE 'CommonStuff.fh'
@@ -659,7 +660,7 @@ A companion main program is shown in
 Figure \refersec{fig:duplicateeliminationexample2companionsource}
 
 \begin{figure}
-\textbf{File Main.f:
+\textit{File Main.f
 \begin{lstlisting}[numbers=none]
 INCLUDE 'CommonStuff.fh'
 C(50) = 8
@@ -670,6 +671,7 @@ END
 \label{fig:duplicateeliminationexample2companionsource}
 \end{figure}
 
+\needlines{3}
 That main program results in an object file that
 contained a duplicate of the \addtoindex{section group} named
 my.f90.company.f90.CommonStuff.fh.654321 
@@ -712,6 +714,7 @@ because the included declarations are not independently
 visible as global entities.
 
 
+\needlines{6}
 \subsubsection{C Example}
 
 The \addtoindex{C} example 
@@ -855,6 +858,7 @@ L2:
 \label{fig:typesignaturecomputation1dwarfrepresentation}
 \end{figure}
 
+\needlines{3}
 In computing a signature for the type N::C, flatten the type
 \addtoindexx{type signature}
 description into a byte stream according to the procedure
index 24e3b59..df34b70 100644 (file)
@@ -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
@@ -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}
@@ -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}}
@@ -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}
 
@@ -2377,6 +2385,7 @@ Table 41 \refersec{tab:integerrepresentationnames}.
 \end{longtable}
 \end{centering}
 
+\needlines{6}
 \section{Type Signature Computation}
 \label{datarep:typesignaturecomputation}
 
@@ -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}
index 98aca2f..0b612a9 100644 (file)
@@ -51,7 +51,7 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 
 \renewcommand{\familydefault}{phv}  % font family helvetica
 
-\newcommand{\docdate}{31 January 2013}
+\newcommand{\docdate}{3 February 2013}
 
 \newcommand{\dwf}{DWARF Debugging Information Format}
 
@@ -254,15 +254,15 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 \include{programscope}                  \emptypage
 \include{dataobject}                    \emptypage
 \include{typeentries}                   \emptypage
-\include{otherdebugginginformation}
-\include{datarepresentation}            \emptypage
+\include{otherdebugginginformation} \emptypage
+\include{datarepresentation}            %\emptypage
 %  The \appendix toggles us into appendix chapters
 \appendix
 \include{attributesbytag}
 \include{debugsectionrelationships}     \emptypage
 \include{encodingdecoding}              \emptypage
-\include{examples}                      \emptypage
-\include{compression}                   \emptypage
+\include{examples}                      %\emptypage
+\include{compression}                   %\emptypage
 \include{sectionversionnumbers}
 \include{gnulicense}
 \printindex
index f094355..f6307cf 100644 (file)
@@ -1851,7 +1851,8 @@ float arr[square(9)]; // square() called and inlined
 \caption{Constant expressions: C++ source} \label{fig:constantexpressionscsource}
 \end{figure}
 
-\begin{figure}[h]
+
+\begin{figure}[!h]
 \begin{dwflisting}
 \begin{alltt}
         ! For variable mass
@@ -1908,7 +1909,7 @@ Figure \refersec{fig:unicodecharacterexamplesource}
 can be described in DWARF as illustrated in 
 Figure \refersec{fig:unicodecharacterexampledwarfdescription}.
 
-\begin{figure}[h]
+\begin{figure}[!h]
 \begin{lstlisting}[numbers=none]
 // C++ source
 //
@@ -1992,6 +1993,7 @@ E e1;
 \end{figure}
 
 
+\clearpage
 \section{Template Examples}
 \label{app:templateexample}
 
@@ -2045,12 +2047,13 @@ with int in the instance. There exist situations where it is
 not possible for the DWARF to imply anything about the nature
 of the original template. 
 
+\needlines{10}
 Consider the C++ template source in
 Figure \refersec{fig:ctemplateexample2source}
 and the DWARF that can describe it in
 Figure \refersec{fig:ctemplateexample2dwarf}.
 
-\begin{figure}[h]
+\begin{figure}[!h]
 \begin{lstlisting}
 // C++ source
 //
@@ -2067,7 +2070,7 @@ Figure \refersec{fig:ctemplateexample2dwarf}.
     consume(obj);
 \end{lstlisting}
 \caption{C++ template example \#2: source}
-\label{ctemplateexample2source}
+\label{fig:ctemplateexample2source}
 \end{figure}
 
 \begin{figure}[h]
index 364847c..265546a 100644 (file)
@@ -591,6 +591,7 @@ do not know about these new opcodes to be able to skip them.
 Codes for vendor specific extensions, if any, are described
 just like standard opcodes.
 
+\needlines{3}
 \item include\_directories (sequence of path names) \\
 Entries 
 \addtoindexx{include\_directories}
@@ -879,6 +880,7 @@ opcode takes a single signed LEB128\addtoindexx{LEB128!signed}
 operand and adds that value to the line register of the
 state machine.
 
+\needlines{4}
 \item \textbf{DW\-\_LNS\-\_set\-\_file} \\ 
 The \livetarg{chap:DWLNSsetfile}{DW\-\_LNS\-\_set\-\_file} opcode takes a single
 unsigned LEB128\addtoindexx{LEB128!unsigned} 
@@ -1025,7 +1027,7 @@ sets the op\_index register to 0.
 affect the address register add a delta to it. This instruction
 stores a relocatable value into it instead.}
 
-
+\needlines{4}
 \item \textbf{DW\-\_LNE\-\_define\-\_file} \\
 
 The \livetarg{chap:DWLNEdefinefile}{DW\-\_LNE\-\_define\-\_file} opcode takes four operands:
@@ -1403,7 +1405,7 @@ contain rules that describe whether a given register has been
 saved and the rule to find the value for the register in the
 previous frame.
 
-\clearpage
+\needlines{4}
 The register rules are:
 
 \begin{tabular}{lp{8cm}}
@@ -1849,6 +1851,7 @@ the DWARF expression.
 regarding restrictions on the DWARF
 expression operators that can be used.}
 
+\needlines{7}
 \item \textbf{DW\-\_CFA\-\_val\-\_expression} \\
 The \livetarg{chap:DWCFAvalexpression}{DW\-\_CFA\-\_val\-\_expression} instruction takes two operands:
 an unsigned LEB128\addtoindexx{LEB128!unsigned} 
index 90ed30c..cff986a 100644 (file)
@@ -214,7 +214,7 @@ begin with the name of the compiler vendor or some other
 identifying character sequence that should avoid confusion
 with other producer values.
 
-
+\needlines{4}
 \item  A \livelink{chap:DWATidentifiercase}{DW\-\_AT\-\_identifier\-\_case} 
 attribute 
 \addtoindexx{identifier case attribute}
@@ -496,6 +496,7 @@ a \livelink{chap:DWATname}{DW\-\_AT\-\_name} attribute
 need only be attached directly to the original
 \livelink{chap:DWTAGnamespace}{DW\-\_TAG\-\_namespace} entry.)
 
+\needlines{4}
 Namespace and namespace extension entries may own 
 \addtoindexx{namespace extension entry}
 other
@@ -1072,6 +1073,7 @@ context is equivalent to using
 but more
 compact. However, these are not equivalent in general.}
 
+\needlines{5}
 \textit{The frame base for a procedure is typically an address fixed
 relative to the first unit of storage allocated for the
 procedure\textquoteright s stack frame. The \livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base} attribute
index 1cec42c..9f45b6e 100644 (file)
@@ -148,6 +148,7 @@ high order bit of a value of the given type from the high
 order bit of the storage unit used to contain that value.}
 \end{myindentpara}
 
+\needlines{5}
 \textit{In comparing 
 DWARF Versions 3 
 \addtoindexx{DWARF Version 3}
@@ -559,6 +560,7 @@ character. This is encoded in DWARF as:}
 \end{alltt}
 \end{dwflisting}
 
+\needlines{3}
 \textit{On the other hand}
 \begin{lstlisting}[numbers=none]                        
    volatile unsigned char * const restrict p;
@@ -1123,12 +1125,11 @@ attribute. If the beginning of the data member is the same as
 the beginning of the containing entity then neither attribute
 is required.
 
+\needlines{4}
 For a \livelink{chap:DWATdatamemberlocation}{DW\-\_AT\-\_data\-\_member\-\_location} attribute
 \addtoindexx{data member location attribute}
 there are two cases:
-
 \begin{enumerate}[1.]
-
 \item If the value is an integer constant, it is the offset
 in bytes from the beginning of the containing entity. If
 the beginning of the containing entity has a non-zero bit
@@ -2370,9 +2371,10 @@ the source program. The template alias entry also contains
 a
 \livelink{chap:DWATtype}{DW\-\_AT\-\_type} attribute 
 whose value is a reference to the type
-named by the template alias. The template alias entry has
-the following child entries:
+named by the template alias. 
 
+\needlines{4}
+The template alias entry has the following child entries:
 \begin{enumerate}[1.]
 \item Each formal parameterized type declaration appearing
 in the template alias declaration is represented