--- /dev/null
--- /dev/null
++
++\chapter[Section Version Numbers (Informative)]{DWARF Section Version Numbers (Informative)}
++\label{app:dwarfsectionversionnumbersinformative}
++\addtoindexx{version number!summary by section}
++
++% The table format looks rather different that V4 and earlier
++% as latex took up too much space and left no room for V5
++% or later. The new format uses space more efficiently.
++
++Most DWARF sections have a version number in the section
++header. This version number is not tied to the DWARF standard
++revision numbers, but instead is incremented when incompatible
++changes to that section are made. The DWARF standard that
++a producer is following is not explicitly encoded in the
++file. Version numbers in the section headers are represented
++as two byte unsigned integers.
++
++Table \refersec{tab:sectionversionnumbers}
++shows what version
++numbers are in use for each section. In that table:
++\begin{itemize}
++\setlength{\itemsep}{0em}
++\item \doublequote{V2} means \addtoindex{DWARF Version 2}, published July 27, 1993.
++\item \doublequote{V3} means \addtoindex{DWARF Version 3}, published December 20, 2005.
++\item \doublequote{V4} means \addtoindex{DWARF Version 4}, published June 10, 2010.
++\item \doublequote{V5} means \addtoindex{DWARF Version 5}\footnote{Higher numbers are reserved for future use.}, published
++ \ifthenelse{\boolean{isdraft}}{\textit{<to be determined>}}{\docdate}.
++\end{itemize}
++
++There are sections with no version number encoded in them;
++they are only accessed via the
++\dotdebuginfo{}
++sections and so an incompatible change in those sections'
++format would be represented by a change in the
++\dotdebuginfo{} section version number.
++
++\needlines{10}
++\begin{centering}
++\setlength{\extrarowheight}{0.1cm}
++\begin{longtable}{lcccc}
++ \caption{Section version numbers} \label{tab:sectionversionnumbers} \\
++ \hline
++ \bfseries Section Name &\bfseries V2 &\bfseries V3 &\bfseries V4
++ &\bfseries V5 \\
++ \hline
++\endfirsthead
++ \bfseries Section Name &\bfseries V2 &\bfseries V3 &\bfseries V4 &\bfseries V5 \\ \hline
++\endhead
++ \hline \emph{Continued on next page}
++\endfoot
++ \hline
++\endlastfoot
++\dotdebugabbrev{} & * & * & * & * \\
++\dotdebugaddr{} & - & - & - & 5 \\
++\dotdebugaranges{} & 2 & 2 & 2 & 2 \\
++\dotdebugframe{}\footnote{\textit{For the \dotdebugframe{} section, version 2 is unused.}}
++ & 1 & 3 & 4 & 4 \\
++\dotdebuginfo{} & 2 & 3 & 4 & 5 \\
++\dotdebugline{} & 2 & 3 & 4 & 5 \\
++<<<<<<< HEAD
++\bbeb\dotdebuglinestr{} & - & - & - & * \\
++=======
++\dotdebuglinestr{} & - & - & - & * \\
++>>>>>>> origin/HEAD
++\dotdebugloc{} & * & * & * & - \\
++\dotdebugloclists{} & - & - & - & 5 \\
++\dotdebugmacinfo{} & * & * & * & - \\*
++\dotdebugmacro{} & - & - & - & 5 \\
++\dotdebugnames{} & - & - & - & 5 \\
++\dotdebugpubnames{} & 2 & 2 & 2 & - \\
++\dotdebugpubtypes{} & - & 2 & 2 & - \\
++\dotdebugranges{} & - & * & * & - \\
++\dotdebugrnglists{} & - & - & - & 5 \\
++\dotdebugstr{} & * & * & * & * \\
++\dotdebugstroffsets & - & - & - & 5 \\
++\dotdebugsup & - & - & - & 5 \\
++\dotdebugtypes{} & - & - & 4 & - \\
++\\
++\hspace{3.5cm}\textit{(split object sections)}
++\\
++\dotdebugabbrevdwo & - & - & - & * \\
++\dotdebuginfodwo & - & - & - & 5 \\
++\dotdebuglinedwo & - & - & - & 5 \\
++\dotdebugloclistsdwo& - & - & - & 5 \\
++\dotdebugmacrodwo & - & - & - & 5 \\
++\dotdebugrnglistsdwo& - & - & - & 5 \\
++
++\dotdebugstrdwo & - & - & - & * \\
++\dotdebugstroffsetsdwo
++ & - & - & - & 5 \\
++
++\hspace{3.5cm}\textit{(package file sections)}
++\\
++\dotdebugcuindex{} & - & - & - & 5 \\
++\dotdebugtuindex{} & - & - & - & 5 \\
++\end{longtable}
++\end{centering}
++
++\needlines{8}
++Notes:
++\begin{itemize}
++\item \doublequote{*} means that a version number is not applicable
++(the section does not include a header or the section's header does not include a version).
++\item \doublequote{-} means that the section was not defined in that
++version of the DWARF standard.
++\item The version numbers for corresponding .debug\_<kind> and .debug\_<kind>.dwo
++sections are the same.
++\end{itemize}
++
++