| ## Test that DWARFv5 DW_FORM_line_strp and corresponding .debug_line_str |
| ## table are correctly recognized and copied into the result. |
| |
| # RUN: yaml2obj %s -o %t.o |
| |
| # RUN: llvm-dwarfutil %t.o %t1 |
| # RUN: llvm-dwarfdump -verify %t1 | FileCheck %s --check-prefix VERIFY-CHECK |
| # RUN: llvm-dwarfdump -a --verbose %t1 | FileCheck %s |
| # |
| # RUN: llvm-dwarfutil --no-garbage-collection %t.o %t1 |
| # RUN: llvm-dwarfdump -verify %t1 | FileCheck %s --check-prefix VERIFY-CHECK |
| # RUN: llvm-dwarfdump -a --verbose %t1 | FileCheck %s |
| # |
| # RUN: llvm-dwarfutil --no-garbage-collection --build-accelerator=DWARF %t.o %t1 |
| # RUN: llvm-dwarfdump -verify %t1 | FileCheck %s --check-prefix VERIFY-CHECK |
| # RUN: llvm-dwarfdump -a --verbose %t1 | FileCheck %s |
| |
| #VERIFY-CHECK: No errors. |
| |
| #CHECK: .debug_info |
| #CHECK: DW_TAG_compile_unit |
| #CHECK: DW_TAG_subprogram |
| #CHECK: DW_AT_name [DW_FORM_line_strp] ( .debug_line_str[0x00000000] = "foo1") |
| #CHECK: .debug_line |
| #CHECK: include_directories[ 0] = .debug_line_str[0x00000000] = "foo1" |
| #CHECK: include_directories[ 1] = .debug_line_str[0x00000000] = "foo1" |
| #CHECK: file_names[ 0]: |
| #CHECK: name: .debug_line_str[0x00000000] = "foo1" |
| #CHECK: file_names[ 1]: |
| #CHECK: name: .debug_line_str[0x00000000] = "foo1" |
| #CHECK: .debug_line_str |
| #CHECK: "foo1" |
| |
| --- !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: 0x1130 |
| Size: 0x60 |
| - Name: .debug_line_str |
| Type: SHT_PROGBITS |
| Flags: [ ] |
| Content: "666f6f3100" |
| - Name: .debug_line |
| Type: SHT_PROGBITS |
| Flags: [ ] |
| Content: "2a00000005000801220000000102030405050102030401011f02000000000000000001011f020000000000000000" |
| 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_addrx |
| - Attribute: DW_AT_high_pc |
| Form: DW_FORM_data8 |
| - Attribute: DW_AT_addr_base |
| Form: DW_FORM_sec_offset |
| - Attribute: DW_AT_stmt_list |
| Form: DW_FORM_sec_offset |
| - Tag: DW_TAG_subprogram |
| Children: DW_CHILDREN_yes |
| Attributes: |
| - Attribute: DW_AT_name |
| Form: DW_FORM_line_strp |
| - Attribute: DW_AT_low_pc |
| Form: DW_FORM_addrx |
| - Attribute: DW_AT_high_pc |
| Form: DW_FORM_data8 |
| - 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_variable |
| Children: DW_CHILDREN_no |
| Attributes: |
| - Attribute: DW_AT_name |
| Form: DW_FORM_string |
| - Attribute: DW_AT_const_value |
| Form: DW_FORM_implicit_const |
| Value: 33 |
| - 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: 0x0 |
| - Value: 0x10 |
| - Value: 0x8 |
| - Value: 0x0 |
| - AbbrCode: 2 |
| Values: |
| - Value: 0x0 |
| - Value: 0x0 |
| - Value: 0x10 |
| - Value: 0x3f |
| - AbbrCode: 0 |
| - AbbrCode: 3 |
| Values: |
| - CStr: int |
| - AbbrCode: 0 |
| debug_addr: |
| - Version: 5 |
| AddressSize: 0x08 |
| Entries: |
| - Address: 0x1130 |
| ... |