DWARF Standard


HOME
SPECIFICATIONS
FAQ
ISSUES



170427.3 Alexandre Oliva Extending loclists with common sublists Enhancement Open Mark Wielaard


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

This proposal introduces an extension mechanism to loclists and
rnglists, that can be used to share location list or range list
fragments among multiple location or range lists.

In Section 2.6.2:

  * List inclusion.  This kind of entry extends a location list with
    entries from another loclist.  It can be used to share list
    entries among multiple lists.

In Section 2.17.13:

  * Range inclusion.  This kind of entry extends a range list with
    entries from another rnglist.  It can be used to share range
    entries among multiple ranges.

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 extension, that has one unsigned LEB128
  operand.  The value is an index into the .debug_loclists section,
  like the operand of a DW_FORM_loclistx loclist.  The contents of the
  location identified by the index are added to the base to determine
  the address of the first entry of a loclist whose entries are to be
  regarded as part of the loclist containing the list extension entry.

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

  9. DW_RLE_include_rnglist

  This is a form of range extension, that has one offset operand.  The
  value is an offset into the .debug_rnglists 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 loclist containing the list extension entry.

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

  2. DW_LLE_include_loclistx

  This is a form of range extension, that has one unsigned LEB128
  operand.  The value is an index into the .debug_rnglists section,
  like the operand of a DW_FORM_rnglistx loclist.  The contents of the
  range identified by the index are added to the base to determine
  the address of the first entry of a rnglist whose entries are to be
  regarded as part of the rnglist containing the range extension entry.

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

  10. DW_RLE_include_rnglist

  This is a form of range extension, 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 rnglist containing the range extension entry.


In Section 7.7.3, add to Table 7.10:

  DW_LLE_include_loclist  | 0x09
  DW_LLE_include_loclistx | 0x0A

In Section 7.25, add to Table 7.30:

  DW_LLE_include_rnglist  | 0x09
  DW_LLE_include_rnglistx | 0x0A

--
2021-04-15:  Revised from 170427.2.
   Previous version: http://dwarfstd.org/ShowIssue.php?issue=170427.2-1
2021-07-12:  Revised.
   Previous version: http://dwarfstd.org/ShowIssue.php?issue=170427.3-1


All logos and trademarks in this site are property of their respective owner.
The comments are property of their posters, all the rest © 2007-2021 by DWARF Standards Committee.