blob: a0ea973c7e21de0e266746f921eb67208b4305c3 [file] [edit]
# This is malformed DWARF where a subprogram is its own specification. Check
# that parsing the function terminates instead of recursing forever.
#
# DW_TAG_compile_unit
# DW_AT_language (DW_LANG_C99)
# DW_AT_low_pc (0x1000)
# DW_AT_high_pc (0x04)
#
# DW_TAG_subprogram
# DW_AT_name ("boom")
# DW_AT_low_pc (0x1000)
# DW_AT_high_pc (0x04)
# DW_AT_specification (0x0000001a "boom")
#
# NULL
# RUN: yaml2obj %s > %t
# RUN: %lldb %t -o "image lookup -v -n boom" -o exit | FileCheck %s
# CHECK: 1 match found
# CHECK: Function: id = {0x0000001a}, name = "boom"
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Address: 0x1000
AddressAlign: 0x10
Size: 0x4
DWARF:
debug_abbrev:
- ID: 0
Table:
- Code: 0x1
Tag: DW_TAG_compile_unit
Children: DW_CHILDREN_yes
Attributes:
- Attribute: DW_AT_language
Form: DW_FORM_data2
- Attribute: DW_AT_low_pc
Form: DW_FORM_addr
- Attribute: DW_AT_high_pc
Form: DW_FORM_data4
- Code: 0x2
Tag: DW_TAG_subprogram
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_string
- Attribute: DW_AT_low_pc
Form: DW_FORM_addr
- Attribute: DW_AT_high_pc
Form: DW_FORM_data4
- Attribute: DW_AT_specification
Form: DW_FORM_ref4
debug_info:
- Version: 4
AddrSize: 8
Entries:
- AbbrCode: 0x1
Values:
- Value: 0x0C
- Value: 0x1000
- Value: 0x04
- AbbrCode: 0x2
Values:
- CStr: boom
- Value: 0x1000
- Value: 0x04
- Value: 0x1A
- AbbrCode: 0x0