Block header
Each block of information in the .debug_xref section
begins with a header that contains the location-format information.
This header does not replace any debugging information entries. It
is additional information that is represented outside the standard
DWARF tag/attributes format. It is used to navigate the information
blocks in the .debug_xref section. This is similar
in format and intent to the standard Compile-Unit Header for .debug_info.
The
.debug_xref block header contains:- Block length
- A 4-byte or 12-byte unsigned integer representing the length of
the
.debug_pablock, not including the length of the field itself. In the 32-bit Dwarf format, this is a 4-byte unsigned integer (which must be less than 0xFFFFFF00). In the 64-bit format, this is a 12-byte unsigned integer that consists of the 4-byte value 0xFFFFFFFF followed by an 8-byte unsigned integer that gives the actual value of the integer. - DWARF version
- A 2-byte unsigned integer representing the version of the DWARF
information for that block of
.debug_xrefinformation. - .debug_abbrev offset
- A 4-byte or 8-byte unsigned offset into the
.debug_abbrevsection that associates the.debug_xrefinformation with a particular set of debugging information entry abbreviations. - Address size
- A 1-byte unsigned integer representing the size in bytes of an address on the target architecture. If the system uses segmented addressing, this value represents the size of the offset portion of an address.