blob: ecafd814baf3ce914d3917850e13224015894f7f [file] [log] [blame]
## This test checks DWARFv5 DW_MACRO_start_file,
## DW_MACRO_end_file, DW_MACRO_define, DW_MACRO_undef,
## DW_MACRO_define_strp, DW_MACRO_undef_strp,
## DW_MACRO_define_strx, DW_MACRO_undef_strx attributes.
# RUN: yaml2obj %s -o %t.o
# RUN: llvm-dwarfutil %t.o %t1 2>&1 | FileCheck --check-prefix=WARN %s
# RUN: llvm-dwarfdump --verify %t1 | FileCheck --check-prefix=VERIFY %s
# RUN: llvm-dwarfdump -a %t1 | FileCheck %s
# WARN: warning: DW_MACRO_define_strx unsupported yet. Convert to DW_MACRO_define_strp.
# WARN: warning: DW_MACRO_undef_strx unsupported yet. Convert to DW_MACRO_undef_strp.
# WARN: warning: DW_MACRO_import and DW_MACRO_import_sup are unsupported yet. remove.
# VERIFY: No errors.
## Content: "05000003000201004400020144000503000000000604000000000b03000c040007000000000400":
#
## .short 5 # Macro information version
## .byte 0 # Flags: 32 bit
## .byte 3 # DW_MACRO_start_file
## .byte 0 # Line Number
## .byte 2 # File Number
## .byte 1 # DW_MACRO_define
## .byte 0 # Line Number
## .asciz "D" # Macro String
## .byte 2 # DW_MACRO_undef
## .byte 1 # Line Number
## .asciz "D" # Macro String
## .byte 5 # DW_MACRO_define_strp
## .byte 3 # Line Number
## .int 00000000 # Macro String
## .byte 6 # DW_MACRO_undef_strp
## .byte 4 # Line Number
## .int 00000000 # Macro String
## .byte 11 # DW_MACRO_define_strx
## .byte 3 # Line Number
## .byte 00 # Macro String
## .byte 12 # DW_MACRO_undef_strx
## .byte 4 # Line Number
## .byte 00 # Macro String
## .byte 7 # DW_MACRO_import
## .int 0 # Offset
## .byte 4 # DW_MACRO_end_file
## .byte 0 # End Of Macro List Mark
#CHECK: .debug_info contents:
#CHECK: DW_TAG_compile_unit
#CHECK: DW_AT_name ("CU1")
#CHECK: DW_AT_macros (0x00000000)
#CHECK: .debug_macro contents:
#CHECK: 0x00000000:
#CHECK: DW_MACRO_start_file - lineno: 0 filenum: 2
#CHECK-NEXT: DW_MACRO_define - lineno: 0 macro: D
#CHECK-NEXT: DW_MACRO_undef - lineno: 1 macro: D
#CHECK-NEXT: DW_MACRO_define_strp - lineno: 3 macro: aa
#CHECK-NEXT: DW_MACRO_undef_strp - lineno: 4 macro: aa
#CHECK-NEXT: DW_MACRO_define_strp - lineno: 3 macro: aa
#CHECK-NEXT: DW_MACRO_undef_strp - lineno: 4 macro: aa
#CHECK-NEXT: DW_MACRO_end_file
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Address: 0x1000
Size: 0x1b
- Name: .debug_macro
Type: SHT_PROGBITS
Flags: [ ]
Content: "05000003000201004400020144000503000000000604000000000b03000c040007000000000400"
- Name: .debug_str_offsets
Type: SHT_PROGBITS
Flags: [ ]
Content: "080000000500000000000000"
DWARF:
debug_abbrev:
- Table:
- Tag: DW_TAG_compile_unit
Children: DW_CHILDREN_yes
Attributes:
- Attribute: DW_AT_producer
Form: DW_FORM_string
- Attribute: DW_AT_language
Form: DW_FORM_data2
- 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_data8
- Attribute: DW_AT_macros
Form: DW_FORM_sec_offset
- Attribute: DW_AT_str_offsets_base
Form: DW_FORM_sec_offset
- Tag: DW_TAG_class_type
Children: DW_CHILDREN_yes
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_string
- Tag: DW_TAG_member
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_type
Form: DW_FORM_ref4
- Attribute: DW_AT_name
Form: DW_FORM_string
- Tag: DW_TAG_class_type
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_string
- Attribute: DW_AT_declaration
Form: DW_FORM_flag_present
- Tag: DW_TAG_class_type
Children: DW_CHILDREN_yes
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_string
- Attribute: DW_AT_declaration
Form: DW_FORM_flag_present
- Tag: DW_TAG_template_type_parameter
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_type
Form: DW_FORM_ref4
- Tag: DW_TAG_base_type
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_string
- Tag: DW_TAG_pointer_type
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_type
Form: DW_FORM_ref4
- Tag: DW_TAG_variable
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_string
- Attribute: DW_AT_const_value
Form: DW_FORM_data4
- Attribute: DW_AT_type
Form: DW_FORM_ref4
- 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_data8
- Attribute: DW_AT_type
Form: DW_FORM_ref4
debug_info:
- Version: 5
UnitType: DW_UT_compile
Entries:
- AbbrCode: 1
Values:
- CStr: by_hand
- Value: 0x04
- CStr: CU1
- Value: 0x1000
- Value: 0x1b
- Value: 0x0
- Value: 0x8
- AbbrCode: 2
Values:
- CStr: class1
- AbbrCode: 3
Values:
- Value: 0x00000056
- CStr: member1
- AbbrCode: 3
Values:
- Value: 0x0000005c
- CStr: member2
- AbbrCode: 0
- AbbrCode: 7
Values:
- CStr: int
- AbbrCode: 7
Values:
- CStr: char
- AbbrCode: 7
Values:
- CStr: float
- AbbrCode: 8
Values:
- Value: 0x00000033
- AbbrCode: 9
Values:
- CStr: var1
- Value: 0x00000000
- Value: 0x00000056
- AbbrCode: 10
Values:
- CStr: foo1
- Value: 0x1000
- Value: 0x10
- Value: 0x00000033
- AbbrCode: 0
- AbbrCode: 0
debug_str:
- 'aa'
...