This patch implements the .debug_loclists section. There are only two
DWARF expressions are implemented in this patch (DW_OP_consts,
DW_OP_stack_value). We will implement more in the future.
The YAML description of the .debug_loclists section is:
debug_loclists:
- Format: DWARF32 ## Optional
Length: 0x1234 ## Optional
Version: 5 ## Optional (5 by default)
AddressSize: 8 ## Optional
SegmentSelectorSize: 0 ## Optional (0 by default)
OffsetEntryCount: 1 ## Optional
Offsets: [ 1 ] ## Optional
Lists:
- Entries:
- Operator: DW_LLE_startx_endx
Values: [ 0x1234, 0x4321 ]
DescriptorsLength: 0x1234 ## Optional
Descriptors:
- Operator: DW_OP_consts
Values: [ 0x1234 ]
There are some operators that take a size and a block of that size. I'm not sure if it's ok to use a std::vector<> here.