1990131f23e38d76ad1e41b95559fe0955296ab8
[dwarf-doc.git] / dwarf5 / latexdoc / sectionversionnumbers.tex
1
2 \chapter[Section Version Numbers (Informative)]{DWARF Section Version Numbers (Informative)}
3 \label{app:dwarfsectionversionnumbersinformative}
4
5 % The table format looks rather different that V4 and earlier
6 % as latex took up too much space and left no room for V5
7 % or later.  The new format uses space more efficiently.
8
9 Most DWARF sections have a version number in the section
10 header. This version number is not tied to the DWARF standard
11 revision numbers, but instead is incremented when incompatible
12 changes to that section are made. The DWARF standard that
13 a producer is following is not explicitly encoded in the
14 file. Version numbers in the section headers are represented
15 as two byte unsigned integers. 
16
17 Table \refersec{tab:sectionversionnumbers}
18 shows what version
19 numbers are in use for each section.
20
21 There are sections with no version number encoded in them;
22 they are only accessed via the 
23 \addtoindex{.debug\_info} and 
24 \addtoindex{.debug\_types}
25 sections and so an incompatible change in those sections'
26 format would be represented by a change in the 
27 and \addtoindex{.debug\_types} section version number.
28
29 \clearpage
30 \begin{centering}
31 \setlength{\extrarowheight}{0.1cm}
32 \begin{longtable}{lccc}
33   \caption{Section version numbers} \label{tab:sectionversionnumbers} \\
34   \hline \\ \bfseries Section Name &\bfseries V2 &\bfseries V3 &\bfseries V4 \\ \hline
35 \endfirsthead
36    \bfseries Section Name &\bfseries V2 &\bfseries V3 &\bfseries V4 \\ \hline
37 \endhead
38   \hline \emph{Continued on next page}
39 \endfoot
40   \hline
41 \endlastfoot
42 \addtoindex{.debug\_abbrev}& -  & -  & -  \\
43 \addtoindex{.debug\_aranges}&2&2&2 \\
44 \addtoindex{.debug\_frame}&1&3&4 \\
45 \addtoindex{.debug\_info}&2&3&4 \\
46 \addtoindex{.debug\_line}&2&3&4   \\
47 \addtoindex{.debug\_loc}& -  & -  & -  \\
48 \addtoindex{.debug\_macinfo}& -  & - & -   \\
49 \addtoindex{.debug\_pubnames}&2&2&2    \\
50 \addtoindex{.debug\_pubtypes}&x&2&2   \\
51 \addtoindex{.debug\_ranges}&x& - & -  \\
52 \addtoindex{.debug\_str}& -  & -  & -  \\
53 \addtoindex{.debug\_types}&x&x&4   \\
54 \end{longtable}
55 \end{centering}
56
57 Notes:
58
59 \begin{itemize}
60 \item  ``V2'' means DWARF Version 2, published July 1993.
61 \item  ``V3'' means DWARF Version 3, published December 2005.
62 \item  ``V4'' means DWARF Version 4, published June 2010.
63 \item  ``-'' means that a version number is not applicable
64 (the section's header does not include a version).
65
66 \item  ``x'' means that the section was not defined in that
67 version of the DWARF standard.
68
69 \item  The version numbers for the \addtoindex{.debug\_info} and \addtoindex{.debug\_types}
70 sections must be the same.
71
72 \end{itemize}
73
74 \textit{For \addtoindex{.debug\_frame}, section version 2 is unused.}
75
76 Higher numbers are reserved for future use.
77