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_pa block, 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_xref information.
.debug_abbrev offset
A 4-byte or 8-byte unsigned offset into the .debug_abbrev section that associates the .debug_xref information 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.