Issue 240618.2: DW_AT_rnglists_base missing

Author: David Anderson
Champion:
Date submitted: 2024-06-18
Date revised: 2025-01-28
Date closed: 2025-03-13
Type: Clarification
Status: Withdrawn
DWARF version: 6

BACKGROUND

If a split-full CU uses DW_FORM_rnglistx, is a DW_AT_rnglists_base required?

Apparently not, since in cases I have seen in object files with a single rnglist in .debug_rnglists.dwo there is no DW_AT_rnglists_base.

The operative assumption seems to be that consumers will simply assume size-of-rnglists-header of the initial .debug_rnglists.dwo contribution as the (missing) DW_AT_rnglists_base.

Similarly for .debug_loclists[.dwo] and DW_AT_loclists_base.

The intent of this proposal is to allow this common practice as correct dwarf.

PROPOSAL

Section 7.28 Range List Table Following the last paragraph before Section 7.29:

If a Split Full Compilation Unit refers to .debug_rnglists.dwo with DW_FORM_rnglistx and the correct DW_AT_rnglists_base would be size-of-rnglists-header of the initial contribution to .debug_rnglists.dwo, the DW_AT_rnglists_base may be omitted. In a dwp package file (See F.3 Package File Example) a .debug_cu_index or .debug_tu_index entry DW_SECT_RNGLISTS makes rnglists base unnecessary by providing the offset of the contribution to .debug_rnglists.dwo.

Section 7.29 Location List Table Following the last paragraph before Section 7.30:

If a Split Full Compilation Unit refers to .debug_loclists.dwo with DW_FORM_loclistx and the correct DW_AT_loclists_base would be size-of-loclists-header of the initial contribution to .debug_loclists.dwo, the DW_AT_loclists_base may be omitted. In a dwp package file (See F.3 Package File Example) a .debug_cu_index or .debug_tu_index entry DW_SECT_LOCLISTS makes loclists base unnecessary by providing the offset of the contribution to .debug_loclists.dwo.


2024-06-18: Original proposal.

2024-09-24: Revised.

2025-01-11: Revised.

2025-03-13: Withdrawn in favor of 250311.1.