Issue 210310.1: Clarify DW_AT_rnglists_base and DW_FORM_rnglistx in Split DWARF
Section 3.1.3, pg 68
The statement that DW_AT_rnglists_base is inherited by the split full unit from
skeleton unit creates some confusion about whether a DW_FORM_rnglistx in the split
full unit can refer to ranges in .debug_rnglists (non-dwo) via DW_AT_rnglists_base
on the skeleton CU.
The consensus seems to be that the only ranges that can be referenced from inside
a .dwo are in the rnglists.dwo and the only ones that can be referenced from the
skeleton unit are in .debug_rnglists (non-.dwo).
Specific changes to the DWARF spec:
3.1.3, page 68:
"The following attributes are not part of a split full compilation unit entry but
instead are inherited (if present) from the corresponding skeleton compilation unit:
DW_AT_low_pc, DW_AT_high_pc, DW_AT_ranges, DW_AT_stmt_list, DW_AT_comp_dir,
DW_AT_str_offsets_base, DW_AT_addr_base and DW_AT_rnglists_base."
Should be modified to remove the mention of DW_AT_rnglists_base, instead reading:
"The following attributes are not part of a split full compilation unit entry
but instead are inherited (if present) from the corresponding skeleton compilation
unit: DW_AT_low_pc, DW_AT_high_pc, DW_AT_ranges, DW_AT_stmt_list, DW_AT_comp_dir,
DW_AT_str_offsets_base, and DW_AT_addr_base."
Table F.1, page 395
Modify the DW_AT_rnglists_base row to include a checkmark in the "Skeleton" column.
(DW_AT_rnglists_base is already correctly listed under DW_TAG_skeleton_unit in
Appendix A, attributes by tag)
Figure B.2, page 278-279
Include a block for .debug_rnglists, with an edge to it from ".debug_info
(Skeleton CU)"
this edge should have a description the same as the matching edge in Figure B.1:
" .debug_info to .debug_rnglists
An attribute value of class rnglist (specifically form DW_FORM_rnglistx or
DW_FORM_sec_offset) is an index or offset within the .debug_rnglists section of
a range list."
--
2022-03-21: Accepted.