Issue 170427.3: Extending loclists with common sublists

Author: Alexandre Oliva
Champion: Mark Wielaard
Date submitted: 2017-04-27
Date revised: 2023-02-03
Date closed: 2023-04-05
Type: Enhancement
Status: Accepted
DWARF Version: 6

Section 2.6.2 Location Lists and Section 2.17.3 Non-Contiguous Address Ranges

This proposal introduces a mechanism for loclists and rnglists to share location list or range list fragments among multiple location or range lists.

In Section 2.6.2:

In Section 2.17.13:

In Section 2.6.2, page 44, add following 1. DW_LLE_end_of_list:

2. DW_LLE_include_loclistx

   This is a form of list inclusion, that has one unsigned LEB128
   operand.  The value is an index into the .debug_loclists section,
   interpreted the same way as the operand of DW_FORM_loclistx to find
   a target list of entries, which will be regarded as part of the
   current loclist, up to the DW_LLE_end_of_list entry.

In Section 2.6.2, page 45, add after 8. DW_LLE_start_length:

9. DW_LLE_include_loclist

   This is a form of list inclusion, that has one offset operand.  The
   value is an offset into the .debug_loclists section, like the
   operand of a DW_FORM_sec_offset loclist.  The offset identifies the
   first entry of a loclist whose entries are to be regarded as part of
   the current loclist, up to the DW_LLE_end_of_list_entry.

In Section 2.17.3, page 53, add following 1. DW_RLE_end_of_list:

2. DW_RLE_include_rnglistx

   This is a form of range inclusion, that has one unsigned LEB128
   operand.  The value is an index into the .debug_rnglists section,
   interpreted the same way as the operand of DW_FORM_rnglistx to find
   a target list of entries, which will be regarded as part of the
   current rnglist, up to the DW_RLE_end_of_list entry.

In Section 2.17.3, page 54, add after 8. DW_RLE_start_length:

10. DW_RLE_include_rnglist

    This is a form of range inclusion, that has one offset operand.  The
    value is an offset into the .debug_rnglists section, like the
    operand of a DW_FORM_sec_offset rnglist.  The offset identifies the
    first entry of a rnglist whose entries are to be regarded as part of
    the current rnglist, up to the DW_RLE_end_of_list_entry.

In Section 7.7.3, add to Table 7.10:

DW_LLE_include_loclist  | 0x??
DW_LLE_include_loclistx | 0x??

In Section 7.25, add to Table 7.30:

DW_RLE_include_rnglist  | 0x??
DW_RLE_include_rnglistx | 0x??

2021-04-15: Revised from 170427.2.
Previous version: http://dwarfstd.org/issues/170427.2-1.html
2021-07-12: Revised.
Previous version: http://dwarfstd.org/issues/170427.3-1.html
2023-01-23: Revised.
2023-02-03: Revised.
Previous version: http://dwarfstd.org/issues/170427.3-2.html