In the following table,
\addtoindex{DECL}
-means includes all three of the
+means include all three of the
\addtoindex{declaration coordinates}
\addtoindexx{declaration coordinates|see {DW\_AT\_decl\_file,DW\_AT\_decl\_line, DW\_AT\_decl\_column}}
\livelink{chap:DWATdeclcolumn}{DW\-\_AT\-\_decl\-\_column},
\livelink{chap:DWATdeclfile}{DW\-\_AT\-\_decl\-\_file}, and
\livelink{chap:DWATdeclline}{DW\-\_AT\-\_decl\-\_line}.
-
\label{tab:attributesbytag}
\setlength{\extrarowheight}{0.1cm}
\begin{longtable}{l|p{8cm}}
\endfoot
\hline
\endlastfoot
+
\livelink{chap:DWTAGaccessdeclaration}{DW\-\_TAG\-\_access\-\_declaration}
& DECL \\
&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
\hline
\livelink{chap:DWTAGcatchblock}{DW\-\_TAG\-\_catch\-\_block}
-&DECL \\
+&DECL \\*
&\livelink{chap:DWATabstractorigin}{DW\-\_AT\-\_abstract\-\_origin} \\
&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
&\livelink{chap:DWATpriority}{DW\-\_AT\-\_priority} \\
&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\
+&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\*
+&\livelink{chap:DWATspecification}{DW\-\_AT\-\_specification} \\*
&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
\hline
\hline
\livelink{chap:DWTAGreferencetype}{DW\-\_TAG\-\_reference\-\_type}
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\
-&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\
+&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\*
+&\livelink{chap:DWATallocated}{DW\-\_AT\-\_allocated} \\*
&\livelink{chap:DWATassociated}{DW\-\_AT\-\_associated} \\
&\livelink{chap:DWATdatalocation}{DW\-\_AT\-\_data\-\_location} \\
&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
&\livelink{chap:DWATthreadsscaled}{DW\-\_AT\-\_threads\-\_scaled} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound} \\
+&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\*
+&\livelink{chap:DWATupperbound}{DW\-\_AT\-\_upper\-\_bound} \\*
&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
\hline
&\livelink{chap:DWATname}{DW\-\_AT\-\_name} \\
&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-\\
\hline
\livelink{chap:DWTAGwithstmt}{DW\-\_TAG\-\_with\-\_stmt}
-&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\
-&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\
-&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\
-&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\
-&\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} \\
-&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\
-&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\
-&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\
-&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\
-&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\
-&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\
+&\livelink{chap:DWATaccessibility}{DW\-\_AT\-\_accessibility} \\*
+&\livelink{chap:DWATaddressclass}{DW\-\_AT\-\_address\-\_class} \\*
+&\livelink{chap:DWATdeclaration}{DW\-\_AT\-\_declaration} \\*
+&\livelink{chap:DWAThighpc}{DW\-\_AT\-\_high\-\_pc} \\*
+&\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} \\*
+&\livelink{chap:DWATlowpc}{DW\-\_AT\-\_low\-\_pc} \\*
+&\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} \\*
+&\livelink{chap:DWATsegment}{DW\-\_AT\-\_segment} \\*
+&\livelink{chap:DWATsibling}{DW\-\_AT\-\_sibling} \\*
+&\livelink{chap:DWATtype}{DW\-\_AT\-\_type} \\*
+&\livelink{chap:DWATvisibility}{DW\-\_AT\-\_visibility} \\*
\end{longtable}
-\renewcommand{\abstractname}{Copyright}
+\renewcommand{\abstractname}{\Large Copyright}
\setlength{\parindent}{0pt}
\begin{abstract}
\setlength{\parindent}{0pt}
\livelink{chap:DWTAGunspecifiedtype}{DW\-\_TAG\-\_unspecified\-\_type}&0x3b \\
\livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit}&0x3c \\
\livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}&0x3d \\
-\livelink{chap:DWTAGcondition}{DW\-\_TAG\-\_condition}&0x3f \\
+\livelink{chap:DWTAGcondition}{DW\-\_TAG\-\_condition}&\xiiif \\
\livelink{chap:DWTAGsharedtype}{DW\-\_TAG\-\_shared\-\_type}&0x40 \\
\livelink{chap:DWTAGtypeunit}{DW\-\_TAG\-\_type\-\_unit} \ddag &0x41 \\
\livelink{chap:DWTAGrvaluereferencetype}{DW\-\_TAG\-\_rvalue\-\_reference\-\_type} \ddag &0x42 \\
\livelink{chap:DWTAGtemplatealias}{DW\-\_TAG\-\_template\-\_alias} \ddag &0x43 \\
\livelink{chap:DWTAGlouser}{DW\-\_TAG\-\_lo\-\_user}&0x4080 \\
-\livelink{chap:DWTAGhiuser}{DW\-\_TAG\-\_hi\-\_user}&0xffff \\
+\livelink{chap:DWTAGhiuser}{DW\-\_TAG\-\_hi\-\_user}&\xffff \\
\end{longtable}
\end{centering}
and which are given a common interpretation according to the
attribute in which the form is used.
-Form \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}
+Form \livetarg{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}
is a member of more
\addtoindexx{rangelistptr class}
than
\addtoindexx{discriminant list attribute!encoding} \\
\livelink{chap:DWATencoding}{DW\-\_AT\-\_encoding}&0x3e&constant
\addtoindexx{encoding attribute!encoding} \\
-\livelink{chap:DWATexternal}{DW\-\_AT\-\_external}&0x3f&\livelink{chap:flag}{flag}
+\livelink{chap:DWATexternal}{DW\-\_AT\-\_external}&\xiiif&\livelink{chap:flag}{flag}
\addtoindexx{external attribute!encoding} \\
\livelink{chap:DWATframebase}{DW\-\_AT\-\_frame\-\_base}&0x40&\livelink{chap:exprloc}{exprloc},
\livelink{chap:loclistptr}{loclistptr} \addtoindexx{frame base attribute!encoding} \\
\livelink{chap:DWATlinkagename}{DW\-\_AT\-\_linkage\-\_name} \ddag &0x6e&string
\addtoindexx{linkage name attribute!encoding} \\
\livetarg{chap:DWATlouser}{DW\-\_AT\-\_lo\-\_user}&0x2000 & --- \addtoindexx{low user attribute encoding} \\
-\livetarg{chap:DWAThiuser}{DW\-\_AT\-\_hi\-\_user}&0x3fff& --- \addtoindexx{high user attribute encoding} \\
+\livetarg{chap:DWAThiuser}{DW\-\_AT\-\_hi\-\_user}&\xiiifff& --- \addtoindexx{high user attribute encoding} \\
\end{longtable}
\end{centering}
&&&\nolink{block} of that size\\
\livelink{chap:DWOPstackvalue}{DW\-\_OP\-\_stack\-\_value} \ddag &0x9f &0& \\
\livetarg{chap:DWOPlouser}{DW\-\_OP\-\_lo\-\_user} &0xe0 && \\
-\livetarg{chap:DWOPhiuser}{DW\-\_OP\-\_hi\-\_user} &0xff && \\
+\livetarg{chap:DWOPhiuser}{DW\-\_OP\-\_hi\-\_user} &\xff && \\
\end{longtable}
\end{centering}
\livelink{chap:DWATEdecimalfloat}{DW\-\_ATE\-\_decimal\-\_float} & 0x0f \\
\livelink{chap:DWATEUTF}{DW\-\_ATE\-\_UTF} \ddag & 0x10 \\
\livetarg{chap:DWATElouser}{DW\-\_ATE\-\_lo\-\_user} & 0x80 \\
-\livetarg{chap:DWATEhiuser}{DW\-\_ATE\-\_hi\-\_user} & 0xff \\
+\livetarg{chap:DWATEhiuser}{DW\-\_ATE\-\_hi\-\_user} & \xff \\
\end{longtable}
\end{centering}
\livelink{chap:DWENDbig}{DW\-\_END\-\_big} & 0x01 \\
\livelink{chap:DWENDlittle}{DW\-\_END\-\_little} & 0x02 \\
\livetarg{chap:DWENDlouser}{DW\-\_END\-\_lo\-\_user} & 0x40 \\
-\livetarg{chap:DWENDhiuser}{DW\-\_END\-\_hi\-\_user} & 0xff \\
+\livetarg{chap:DWENDhiuser}{DW\-\_END\-\_hi\-\_user} & \xff \\
\end{longtable}
\end{centering}
\livelink{chap:DWLANGD}{DW\-\_LANG\-\_D}&0x0013&0 \\
\livelink{chap:DWLANGPython}{DW\-\_LANG\-\_Python} \dag &0x0014&0 \\
\livetarg{chap:DWLANGlouser}{DW\-\_LANG\-\_lo\-\_user}&0x8000 & \\
-\livetarg{chap:DWLANGhiuser}{DW\-\_LANG\-\_hi\-\_user}&0xffff & \\
+\livetarg{chap:DWLANGhiuser}{DW\-\_LANG\-\_hi\-\_user}&\xffff & \\
\end{longtable}
\end{centering}
\livelink{chap:DWCCprogram}{DW\-\_CC\-\_program}&0x02 \\
\livelink{chap:DWCCnocall}{DW\-\_CC\-\_nocall}&0x03 \\
\livetarg{chap:DWCClouser}{DW\-\_CC\-\_lo\-\_user}&0x40 \\
-\livetarg{chap:DWCChiuser}{DW\-\_CC\-\_hi\-\_user}&0xff \\
+\livetarg{chap:DWCChiuser}{DW\-\_CC\-\_hi\-\_user}&\xff \\
\end{longtable}
\end{centering}
\livelink{chap:DWLNEdefinefile}{DW\-\_LNE\-\_define\-\_file}&0x03\\
\livelink{chap:DWLNEsetdiscriminator}{DW\-\_LNE\-\_set\-\_discriminator} \ddag &0x04 \\
\livetarg{chap:DWLNElouser}{DW\-\_LNE\-\_lo\-\_user}&0x80 \\
-\livetarg{chap:DWLNEhiuser}{DW\-\_LNE\-\_hi\-\_user}&0xff \\
+\livetarg{chap:DWLNEhiuser}{DW\-\_LNE\-\_hi\-\_user}&\xff \\
\end{longtable}
\end{centering}
\livelink{chap:DWMACINFOundef}{DW\-\_MACINFO\-\_undef}&0x02 \\
\livelink{chap:DWMACINFOstartfile}{DW\-\_MACINFO\-\_start\-\_file}&0x03 \\
\livelink{chap:DWMACINFOendfile}{DW\-\_MACINFO\-\_end\-\_file}&0x04 \\
-\livelink{chap:DWMACINFOvendorext}{DW\-\_MACINFO\-\_vendor\-\_ext}&0xff \\
+\livelink{chap:DWMACINFOvendorext}{DW\-\_MACINFO\-\_vendor\-\_ext}&\xff \\
\end{longtable}
\end{centering}
\livelink{chap:DWCFAvaloffsetsf}{DW\-\_CFA\-\_val\-\_offset\-\_sf}&0&0x15&ULEB128&SLEB128 \\
\livelink{chap:DWCFAvalexpression}{DW\-\_CFA\-\_val\-\_expression}&0&0x16&ULEB128&BLOCK \\
\livetarg{chap:DWCFAlouser}{DW\-\_CFA\-\_lo\-\_user}&0&0x1c & & \\
-\livetarg{chap:DWCFAhiuser}{DW\-\_CFA\-\_hi\-\_user}&0&0x3f & & \\
+\livetarg{chap:DWCFAhiuser}{DW\-\_CFA\-\_hi\-\_user}&0&\xiiif & & \\
\end{longtable}
\end{centering}
the diagram and associated notes on the following pages.
\begin{figure}[h]
-% picture gets width and height of the picture drawn
-% so latex knows how big it is (latex does not calculate
-% the space you need to make it fit, you do).
-\begin{picture}(320,300)
-% Footnotesize keeps the text small-size so it fits
-% in the boxes and ellipses
-\footnotesize
-% Thicklines makes the lines more visible.
-\Thicklines
- \put(5,208) { \addtoindex{.debug\_aranges} }
- \put(40,210) { \ellipse{80}{30}}
- \put(180,208) { \addtoindex{.debug\_frame} }
- \put(210,210) { \ellipse{80}{30}}
- \put(347,208) { \addtoindex{.debug\_abbrev} }
- \put(380,210) { \ellipse{80}{30}}
-
- \drawline[1](40,195)(40,181)
- \put(-10,165){\framebox(110,15){To compilation unit (a)} }
- \drawline[1](40,165)(40,151)(37,158)
- \put(352,168) { \addtoindex{.debug\_str} }
- \put(380,170) {\ellipse{80}{30}}
-
- \put(10,133) { \addtoindex{.debug\_info} }
- \put(10,123) { \addtoindex{.debug\_types} }
- \put(40,130) {\ellipse{80}{40}}
-
-
- \put(350,128) { \addtoindex{.debug\_loc} }
- \put(380,130) {\ellipse{80}{30}}
-
- \put(345,88) { \addtoindex{.debug\_ranges} }
- \put(380,90) {\ellipse{80}{30}}
-
- \drawline[1](75,141)(160,170)
- \put(160,165){\framebox(110,15){To abbreviations (c)} }
- \drawline[1](271,176)(345,205)(335,197)
-
- \put(76,138){\line(6, 1){83}}
- \put(160,140){\framebox(110,15){\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp} (d)} }
- \drawline[1](271,150)(341,168)(332,162)
-
- \drawline[1](160,125)(80,130)(90,134)
- \put(160,115){\framebox(110,15){\livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref}(e)} }
- \drawline[1](271,125)(340,128)
-
- \drawline[1](79,128)(160,100)
- \put(160,90){\framebox(110,15){\livelink{chap:DWATlocation}{DW\-\_AT\-\_location} etc (f)} }
- \drawline[1](271,100)(341,125)(332,118)
-
- \drawline(79,125)(160,75)
- \put(160,65){\framebox(110,15){\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} (g)} }
- \drawline(271,75)(340,90)(332,85)
-
- \drawline[1](77,121)(160,46)
- \put(160,40){\framebox(110,15){\livelink{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info} (h)} }
- \drawline[1](271,46)(343,53)(332,49)
-
- \drawline[1](71, 116)(160,20)
- \put(160,15){\framebox(110,15){\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list} (i)} }
- \drawline[1](271,20)(343,10)(332,8)
-
- \drawline[1](40,70)(40,110)(37,103)
- \put(-10,55){\framebox(110,15){To compilation unit (b)} }
- \drawline[1](40,35)(40,54)
-
- \put(0,16) { \addtoindex{.debug\_pubnames} }
- \put(0,6) { \addtoindex{.debug\_pubtypes} }
- \put(40, 15) { \ellipse{100}{40}}
-
-
- \put(345,48) { \addtoindex{.debug\_macinfo} }
- \put(380,50) { \ellipse{80}{30}}
-
- \put(350,8) { \addtoindex{.debug\_line} }
- \put(380,10) { \ellipse{80}{30}}
-
-\end{picture}
+\small
+\begin{tikzpicture}
+ [sect/.style={rectangle, rounded corners, draw, fill=blue!20, inner sep=.2cm, minimum width=4.5cm},
+ link/.style={rectangle, draw, inner sep=.2cm, minimum width=5.0cm}]
+
+% The left column, first sections, then links, from top to bottom
+%
+\node(zsectara) at ( 0, 10.) [sect] {\dotdebugaranges};
+\node(zlinka) at ( 0, 8.0) [link] {To compilation unit (a)};
+\node(zsectinf) at ( 0, 5.0) [sect] {\begin{tabular}{c} \dotdebuginfo \\ \dotdebugtypes \end{tabular}};
+\node(zlinkb) at ( 0, 2.0) [link] {To compilation unit (b)};
+\node(zsectpub) at ( 0, 0.0) [sect] {\begin{tabular}{c} \dotdebugpubnames \\ \dotdebugpubtypes \end{tabular}};
+
+\draw[thick,-o] (zlinka) -- (zsectara);
+\draw[thick,angle 90-] (zsectinf) -- (zlinka);
+\draw[thick,-angle 90] (zlinkb) -- (zsectinf);
+\draw[thick,o-] (zsectpub) -- (zlinkb);
+
+% The middle column, similarly
+%
+\node(zsectfra) at (6, 10.) [sect] {\dotdebugframe};
+\node(zlinkc) at (6, 8.) [link] {To abbreviations (c)};
+\node(zlinkd) at (6, 7.) [link] {\DWFORMstrp{} (d)};
+\node(zlinke) at (6, 6.) [link] {\DWOPcallref{} (e)};
+\node(zlinkf) at (6, 5.) [link] {\DWATlocation{}, etc. (f)};
+\node(zlinkg) at (6, 4.) [link] {\DWATranges{} (g)};
+\node(zlinkh) at (6, 3.) [link] {\DWATmacroinfo{} (h)};
+\node(zlinki) at (6, 2.) [link] {\DWATstmtlist{} (i)};
+
+% Links between left and center
+%
+\draw[thick,o-] (zsectinf) -- (zlinkc.west);
+\draw[thick,o-] (zsectinf) -- (zlinkd.west);
+\draw[thick,angle 90-] (zsectinf) -- (zlinke.west);
+\draw[thick,o-] (zsectinf) -- (zlinkf.west);
+\draw[thick,o-] (zsectinf) -- (zlinkg.west);
+\draw[thick,o-] (zsectinf) -- (zlinkh.west);
+\draw[thick,o-] (zsectinf) -- (zlinki.west);
+
+% The right column
+%
+\node(zsectabb) at (12, 10) [sect] {\dotdebugabbrev};
+\node(zsectstr) at (12, 8) [sect] {\dotdebugstr};
+\node(zsectloc) at (12, 6) [sect] {\dotdebugloc};
+\node(zsectran) at (12, 4) [sect] {\dotdebugranges};
+\node(zsectmac) at (12, 2) [sect] {\dotdebugmacinfo};
+\node(zsectlin) at (12, 0) [sect] {\dotdebugline};
+
+% Links between center and right
+%
+\draw[thick,-angle 90] (zlinkc.east) -- (zsectabb.west);
+\draw[thick,-angle 90] (zlinkd.east) -- (zsectstr.west);
+\draw[thick,-o] (zlinke.east) -- (zsectloc.west);
+\draw[thick,-angle 90] (zlinkf.east) -- (zsectloc.south west);
+\draw[thick,-angle 90] (zlinkg.east) -- (zsectran.west);
+\draw[thick,-angle 90] (zlinkh.east) -- (zsectmac.west);
+\draw[thick,-angle 90] (zlinki.east) -- (zsectlin.west);
+
+\end{tikzpicture}
+
+\vspace{1cm}
\caption{Debug section relationships}
\label{fig:debugsectionrelationships}
\end{figure}
-\documentclass[12pt,letterpaper,twoside]{memoir}
+\documentclass[12pt,letterpaper,oneside]{memoir}
% for debugging, add 'draft' (without quotes) to the [] document class list.
% 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}{19 April 2013 (***Draft***)}
+\newcommand{\docdate}{25 April 2013 (***Draft***)}
+%
+\usepackage[T1]{fontenc}
+\usepackage{bookman}
+\usepackage{cmtt}
+\renewcommand{\ttdefault}{cmtt} % Use Computer Modern Typewriter instead of Courier
+%\usepackage{ascii}
+%\renewcommand{\ttdefault}{ascii}
+%\renewcommand{\ttfamily}{\asciifamily}
+%\usepackage{microtype}
+%\DisableLigatures[f]{encoding=T1}
+%\renewcommand{\familydefault}{phv} % font family helvetica
%
\usepackage{url} % For color in letters. Links instead?
\usepackage[usenames]{color} % For color in letters. Links instead?
\usepackage{alltt}
\lstset{ %
language={}, % choose the language of the code
-basicstyle=\footnotesize, % the size of the fonts that are used for the code
+basicstyle=\footnotesize\ttfamily, % the size of the fonts that are used for the code
numbers=left, % where to put the line-numbers
numberstyle=\footnotesize, % the size of the fonts that are used for the line-numbers
numberfirstline=true,
\usepackage{needspace} % For assuring space remaining on a page
\usepackage{ifthen} % For conditional processing
\usepackage{changepage} % For odd/even page checks
-\usepackage{epic} % For eepic package
-\usepackage{eepic} % For the diagram of section relationships
-\usepackage{eepicemu} % For the diagram of section relationships
+%\usepackage{epic} % For eepic package
+%\usepackage{eepic} % For the diagram of section relationships
+%\usepackage{eepicemu} % For the diagram of section relationships
+\usepackage{tikz} % graphics (Appendix B)
+\usetikzlibrary{shapes.geometric}
+\usetikzlibrary{arrows}
\usepackage{makeidx} % For making an index
% hyperref must be the last package listed.
% The hyperref settings helps hypertext get right links in the
\usepackage[plainpages=false,pdfpagelabels,pagebackref,allcolors=blue]{hyperref} % Lets us generate colored active links inside a pdf.
\makeindex % This and the makeidx package allow \index to create index entries.
-\renewcommand{\familydefault}{phv} % font family helvetica
-
\newcommand{\dwf}{DWARF Debugging Information Format}
\newenvironment{myindentpara}[1]%
\end{table}
}
+% Anti-ligature commands added because \/ and {} don't work for unknown reasons
+% nor does the microtext package DisableLigatures command...???
+%
+\newcommand{\xiiif} {0x\hspace{1pt}3\hspace{2pt}f}
+\newcommand{\xiiifff} {0x\hspace{1pt}3\hspace{2pt}f\hspace{2pt}f\hspace{2pt}f}
+\newcommand{\xff} {0x\hspace{1pt}f\hspace{2pt}f}
+\newcommand{\xffff} {0x\hspace{1pt}f\hspace{2pt}f\hspace{2pt}f\hspace{2pt}f}
+%
+% These are intended for use in running text...
+%
\newcommand{\xffffffff} {\texttt{0xffffffff}} % use with following punctutation
\newcommand{\wffffffff} {\texttt{0xffffffff}\ } % use as separate "word"
\newcommand{\xfffffffzero} {\texttt{0xfffffff0}} % use with following punctutation
\newcommand{\xffffffffffffffff} {\texttt{0xffffffffffffffff}} % use with following punctutation
\newcommand{\wffffffffffffffff} {\texttt{0xffffffffffffffff}\ }
+% Define commands for all of the DWARF names (DW_*, .debug_*, a few others)
+\include{dwarfnamecmds}
+
%--- Begin the document pages
%
\begin{document}
--- /dev/null
+% Definitions for each of the DWARF names
+% These eliminate the need to use escapes for the underscores and
+% add entries for indexing
+%
+\newcommand{\DWFORMstrp}[1][]{\addtoindex{DW\_FORM\_strp}}
+\newcommand{\DWOPcallref}[1][]{\addtoindex{DW\_OP\_call\_ref}}
+\newcommand{\DWATlocation}[1][]{\addtoindex{DW\_AT\_location}}
+\newcommand{\DWATranges}[1][]{\addtoindex{DW\_AT\_ranges}}
+\newcommand{\DWATmacroinfo}[1][]{\addtoindex{DW\_AT\_macro\_info}}
+\newcommand{\DWATstmtlist}[1][]{\addtoindex{DW\_AT\_stmt\_list}}
+
+\newcommand{\dotdebugabbrev}[1][]{\addtoindex{\texttt{.debug\_abbrev}}}
+\newcommand{\dotdebugaranges}[1][]{\addtoindex{\texttt{.debug\_aranges}}}
+\newcommand{\dotdebugframe}[1][]{\addtoindex{\texttt{.debug\_frame}}}
+\newcommand{\dotdebuginfo}[1][]{\addtoindex{\texttt{.debug\_info}}}
+\newcommand{\dotdebugloc}[1][]{\addtoindex{\texttt{.debug\_loc}}}
+\newcommand{\dotdebugmacinfo}[1][]{\addtoindex{\texttt{.debug\_mac\_info}}}
+\newcommand{\dotdebugline}[1][]{\addtoindex{\texttt{.debug\_line}}}
+\newcommand{\dotdebugpubnames}[1][]{\addtoindex{\texttt{.debug\_pubnames}}}
+\newcommand{\dotdebugpubtypes}[1][]{\addtoindex{\texttt{.debug\_pubtypes}}}
+\newcommand{\dotdebugranges}[1][]{\addtoindex{\texttt{.debug\_ranges}}}
+\newcommand{\dotdebugstr}[1][]{\addtoindex{\texttt{.debug\_str}}}
+\newcommand{\dotdebugtypes}[1][]{\addtoindex{\texttt{.debug\_types}}}
\clearpage
\begin{figure}[here]
%\centering
-\begin{minipage}{0.4\textwidth}
+%\setlength{\linewidth}{1.1\linewidth}
+\begin{minipage}[t]{0.03\linewidth}
+\flushright
+\scriptsize
+% Note: alltt is used to step down the needed number of lines to the labels
+\begin{alltt}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\textit{e1:}
+
+
+
+
+\textit{e2:}
+\end{alltt}
+\end{minipage}
+%
+\begin{minipage}[t]{0.38\linewidth}
\centering
Compilation Unit \#1: \addtoindex{.debug\_info}
\begin{framed}
\hrule
1
"myfile.c"
-"Best Compiler Corp: Version 1.3"
+"Best Compiler Corp, V1.3"
"/home/mydir/src"
\livelink{chap:DWLANGC89}{DW\-\_LANG\-\_C89}
0x0
0x0
\vspace{0.01cm}
\hrule
-\textit{e1:}
2
"char"
\livelink{chap:DWATEunsignedchar}{DW\-\_ATE\-\_unsigned\-\_char}
1
\vspace{0.01cm}
\hrule
-\textit{e2:}
3
\textit{e1 (debug info offset)}
\vspace{0.01cm}
%
\end{framed}
\end{minipage}
-\hfill
-\begin{minipage}{0.4\textwidth}
+\hfill
+% Place the label for the abbreviation table
+\begin{minipage}[t]{0.03\linewidth}
+\flushright
+\scriptsize
+% Note: alltt is used to step down the needed number of lines to the label
+\begin{alltt}
+
+
+
+
+
+\textit{a1:}
+\end{alltt}
+\end{minipage}
+%
+\begin{minipage}[t]{0.41\linewidth}
\centering
Abbreviation Table: \addtoindex{.debug\_abbrev}
\begin{framed}
\scriptsize
-\begin{alltt}
-\textit{a1:}
+\begin{alltt}\vspace{0.06cm}
1
\livelink{chap:DWTAGcompileunit}{DW\-\_TAG\-\_compile\-\_unit}
\livelink{chap:DWCHILDRENyes}{DW\-\_CHILDREN\-\_yes}
\end{alltt}
\end{framed}
\end{minipage}
+
+\vspace{0.2cm}
\caption{Compilation units and abbreviations table} \label{fig:compilationunitsandabbreviationstable}
\end{figure}
-\renewcommand{\abstractname}{Foreword}
+\renewcommand{\abstractname}{\Large Foreword}
\begin{abstract}
-\nonzeroparskip
\setlength{\parindent}{0pt}
+\nonzeroparskip
\ \break
The \dwf\ Committee was originally organized in 1988 as the
Programming Languages Special Interest Group (PLSIG) of Unix
This document is intended to be usable in online as well as
traditional paper forms.
In the online form, blue text is
-used to indicate hyperlinks which facilitate moving around
-in the document in a manner like that typically found in web
-browsers.
+used to indicate hyperlinks.
+% which facilitate moving around
+%in the document in a manner like that typically found in web
+%browsers.
Most hyperlinks link to the definition of a term or
construct, or to a cited Section or Figure.
However, attributes
contexts where they may be appropriate.
Examples include
\livelink{chap:DWATartificial}{DW\-\_AT\-\_artificial},
-the declaration coordinates, and
+the \livelink{chap:DWATdeclfilefilecontainingsourcedeclaration}{declaration coordinates}, and
\livelink{chap:DWATdescription}{DW\-\_AT\-\_description},
among others.}
The debugging information entries are contained
-in the \addtoindex{.debug\_info} and
-\addtoindex{.debug\_types}
+in the \dotdebuginfo{} and
+\dotdebugtypes{}
sections of an object file.
A structure member is four bytes from the start of the structure
instance. The base address is assumed to be already on the stack.
-\descriptionitemnl{\livelink{chap:DWOPreg3}{DW\-\_OP\-\_reg3} \livelink{chap:DWOPpiece}{DW\-\_OP\-\_piece} 4 \livetarg{chap:DWOPreg10}{DW\-\_OP\-\_reg10} \livelink{chap:DWOPpiece}{DW\-\_OP\-\_piece} 2}
+\descriptionitemnl{\livelink{chap:DWOPreg}{DW\-\_OP\-\_reg3} \livelink{chap:DWOPpiece}{DW\-\_OP\-\_piece} 4 \livetarg{chap:DWOPreg10}{DW\-\_OP\-\_reg10} \livelink{chap:DWOPpiece}{DW\-\_OP\-\_piece} 2}
A variable whose first four bytes reside in register 3 and whose next
two bytes reside in register 10.
\textit{It is
\addtoindexx{declaration coordinates}
sometimes useful in a debugger to be able to associate
-a declaration with its occurrence in the program source.
-}
+a declaration with its occurrence in the program source.}
Any debugging information
\hypertarget{chap:DWATdeclfilefilecontainingsourcedeclaration}
\centering
\caption{Inline codes}
\label{tab:inlinecodes}
-\begin{tabular}{l|p{9cm}}
+\begin{tabular}{l|p{8cm}}
\hline
Name&Meaning\\ \hline
\livetarg{chap:DWINLnotinlined}{DW\-\_INL\-\_not\-\_inlined} & Not declared inline nor inlined by the
- compiler (equivalent to the absence of the containing \break
- \livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute) \\
-\livetarg{chap:DWINLinlined}{DW\-\_INL\-\_inlined} & Not declared inline but inlined by the compiler \\
+ \mbox{compiler} (equivalent to the absence of the
+ containing \livelink{chap:DWATinline}{DW\-\_AT\-\_inline} attribute) \\
+\livetarg{chap:DWINLinlined}{DW\-\_INL\-\_inlined} & Not declared inline but inlined by the \mbox{compiler} \\
\livetarg{chap:DWINLdeclarednotinlined}{DW\-\_INL\-\_declared\-\_not\-\_inlined} & Declared inline but
- not inlined by the compiler \\
-\livetarg{chap:DWINLdeclaredinlined}{DW\-\_INL\-\_declared\-\_inlined} & Declared inline and inlined by the compiler \\
+ not inlined by the \mbox{compiler} \\
+\livetarg{chap:DWINLdeclaredinlined}{DW\-\_INL\-\_declared\-\_inlined} & Declared inline and inlined by the
+ \mbox{compiler} \\
\hline
\end{tabular}
\end{table}
\textit{The interpretation of the value of this attribute for
inherited types is the same as the interpretation for data
members
-(see Section \refersec{chap:datamemberentries}). }
+(see Section \referfol{chap:datamemberentries}). }
An
\addtoindexx{inheritance entry}