275afce4a96dbd9fed8a29206b95bbcb8d650955
[dwarf-doc.git] / dwarf5 / latexdoc / debugsectionrelationships.tex
1 \chapter{Debug Section Relationships (Informative)}
2 \label{app:debugsectionrelationshipsinformative}
3 %
4 \setlength\maxovaldiam{80pt}
5 \thicklines
6 \begin{picture}(0,0)
7 \footnotesize
8   \put(10,0) { \addtoindex{.debug\_aranges} }
9   \put(40,0) { \circle{80}}
10   \put(180,0) { \addtoindex{.debug\_frame} }
11   \put(210,0) { \circle{80}}
12   \put(350,0) { \addtoindex{.debug\_abbrev} }
13   \put(380,0) { \circle{80}}
14
15   \put(40,-40){\line(0,-1){30}}
16   \put(-10,-90){\framebox(110,20){To compilation unit (a)} }
17   \put(40,-90){\vector(0,-1){35}}
18
19   \put(350,-90) { \addtoindex{.debug\_str} }
20   \put(380,-90) {\circle{80}}
21
22   \put(10,-180) { \addtoindex{.debug\_info} }
23   \put(40,-180) {\circle{100}}
24   \put(10,-195) { \addtoindex{.debug\_types} }
25
26
27   \put(350,-180) { \addtoindex{.debug\_loc} }
28   \put(380,-180) {\circle{80}}
29
30   \put(350,-270) { \addtoindex{.debug\_ranges} }
31   \put(380,-270) {\circle{80}}
32
33   \put(80,-140){\line(3, 2){90}}
34   \put(170,-90){\framebox(110,20){To abbreviations (c)} }
35   \put(280,-70){\vector( 2, 1){70}}
36
37   \put(90,-150){\line(2, 1){100}}
38   \put(190,-120){\framebox(110,20){\livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp} (d)} }
39   \put(300,-100){\vector( 4, 1){35}}
40
41   \put(190,-140){\vector(-2, -1){100}}
42   \put(190,-150){\framebox(110,20){\livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref}(e)} }
43   \put(300,-150){\line(4,-1){40}}
44
45   \put(90,-195){\line(7,2){95}}
46   \put(190,-180){\framebox(110,20){\livelink{chap:DWATlocation}{DW\-\_AT\-\_location}(f)} }
47   \put(300,-180){\vector(1,0){40}}
48
49   \put(90,-195){\line(7,-2){95}}
50   \put(190,-230){\framebox(110,20){\livelink{chap:DWATranges}{DW\-\_AT\-\_ranges} (g)} }
51   \put(300,-230){\vector(4,-3){40}}
52
53   \put(85,-200){\line(3,-2){95}}
54   \put(180,-270){\framebox(110,20){\livelink{chap:DWATmacroinfo}{DW\-\_AT\-\_macro\-\_info} (h)} }
55   \put(230,-270){\vector(3,-2){110}}
56
57   \put(85,-200){\line(1,-1){80}}
58   \put(120,-300){\framebox(110,20){\livelink{chap:DWATstmtlist}{DW\-\_AT\-\_stmt\-\_list} (i)} }
59   \put(180,-300){\vector(1,-2){10}}
60
61   \put(40,-250){\vector(0,1){15}}
62   \put(-10,-270){\framebox(110,20){To compilation unit (b)} }
63   \put(40,-320){\line(0,1){50}}
64
65   \put(0,-360) { \addtoindex{.debug\_pubnames} }
66   \put(0,-375) { \addtoindex{.debug\_pubtypes} } 
67   \put(40, -360) { \circle{80}}
68   \put(175,-360) { \addtoindex{.debug\_line} }
69   \put(210,-360) { \circle{80}}
70   \put(350,-360) { \addtoindex{.debug\_macinfo} }
71   \put(380,-360) { \circle{80}}
72
73 \end{picture}
74
75 \clearpage
76 \begin{enumerate}[(a)]  
77 \item  \addtoindex{.debug\_aranges}  \\
78 The debug\_info\_offset value in
79 the header is
80 the offset in the \addtoindex{.debug\_info} section of the
81 corresponding compilation unit header (not the compilation
82 unit entry).
83
84 %b
85 \item \addtoindex{.debug\_pubnames} and \addtoindex{.debug\_pubtypes} \\
86 The debug\_info\_offset value in the header is the offset in the
87 \addtoindex{.debug\_info} section of the 
88 corresponding compilation unit header (not
89 the compilation unit entry). Each pubname/pubtype has the offset (within
90 the corresponding compilation unit) of the applicable debugging
91 information entry.
92
93 %c
94 \item \addtoindex{.debug\_info} and \addtoindex{.debug\_types} \\
95 The debug\_abbrev\_offset value in the header is the offset in the
96 \addtoindex{.debug\_abbrev} 
97 section of the abbreviations for that compilation unit.
98
99 %d
100 \item  \addtoindex{.debug\_info} and \addtoindex{.debug\_types} \\
101 Attribute values of class string may have form \livelink{chap:DWFORMstrp}{DW\-\_FORM\-\_strp}, whose
102 value is the offset in the \addtoindex{.debug\_str}
103 section of the corresponding string.
104
105 %e
106 \item \addtoindex{.debug\_loc} \\
107 The operand of the \livelink{chap:DWOPcallref}{DW\-\_OP\-\_call\-\_ref} DWARF expression operator is the
108 offset of a debugging information entry in the 
109 \addtoindex{.debug\_info} section.
110
111 %f
112 \item \addtoindex{.debug\_info} \\
113 An attribute value of class \livelink{chap:loclistptr}{loclistptr} (specifically form
114 \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) is an offset within the \addtoindex{.debug\_loc} section of a
115 location list.
116
117 %g
118 \item \addtoindex{.debug\_info} \\
119 An attribute value of class \livelink{chap:rangelistptr}{rangelistptr} (specifically form
120 \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) is an offset within the \addtoindex{.debug\_ranges} section of
121 a range list.
122
123 %h
124 \item \addtoindex{.debug\_info} \\
125 An attribute value of class 
126 \livelink{chap:macptr}{macptr} (specifically form
127 \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) is an 
128 offset within the 
129 \addtoindex{.debug\_macinfo} section
130 of the beginning of the macro information for the referencing unit.
131
132 %i
133 \item \addtoindex{.debug\_info} \\
134 An attribute value of class 
135 \livelink{chap:lineptr}{lineptr} (specifically form
136 \livelink{chap:DWFORMsecoffset}{DW\-\_FORM\-\_sec\-\_offset}) 
137 is an offset in the 
138 \addtoindex{.debug\_line} section of the
139 beginning of the line number information for the referencing unit.
140 \end{enumerate}