LLDB's DWARF parser didn't support parsing DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt forms which would cause any file loaded by LLDB to fail to parse any DWARF. Added support for parsing this information only, not for actually finding the debug info reference to an alternate file or a string in an alternate file. These extensions are used by DWZ files which are present in some linux distros, so it will be good for LLDB to just be able to parse these without emitting an error like: (lldb) b bar warning: (arm64) /tmp/a.out unsupported DW_FORM values: 0x1f20 0x1f21
54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_DYN
|
|
Machine: EM_X86_64
|
|
Entry: 0x1000
|
|
DWARF:
|
|
debug_str:
|
|
- ''
|
|
- bar
|
|
debug_abbrev:
|
|
- ID: 0
|
|
Table:
|
|
- Code: 0x1
|
|
Tag: DW_TAG_compile_unit
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_GNU_strp_alt
|
|
- Attribute: DW_AT_language
|
|
Form: DW_FORM_udata
|
|
- Code: 0x2
|
|
Tag: DW_TAG_subprogram
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_GNU_ref_alt
|
|
- Attribute: DW_AT_low_pc
|
|
Form: DW_FORM_addr
|
|
- Attribute: DW_AT_high_pc
|
|
Form: DW_FORM_addr
|
|
debug_info:
|
|
- Length: 0x27
|
|
Version: 4
|
|
AbbrevTableID: 0
|
|
AbbrOffset: 0x0
|
|
AddrSize: 8
|
|
Entries:
|
|
- AbbrCode: 0x1
|
|
Values:
|
|
- Value: 0x123
|
|
- Value: 0x2
|
|
- AbbrCode: 0x2
|
|
Values:
|
|
- Value: 0x1
|
|
- Value: 0x12
|
|
- Value: 0x1000
|
|
- Value: 0x1100
|
|
- AbbrCode: 0x0
|
|
...
|