This patch renames values of dsymutil/llvm-dwarfutil options: --linker apple -> --linker classic --linker llvm -> --linker parallel The purpose to rename options is to avoid using vendor names and to match with library names. It should be safe to rename options at current stage as they are not seemed widely used(we may not preserve backward compatibility).
202 lines
5.8 KiB
Plaintext
202 lines
5.8 KiB
Plaintext
# RUN: yaml2obj %s -o %t.o
|
|
# RUN: echo '---' > %t2.map
|
|
# RUN: echo "triple: 'x86_64-apple-darwin'" >> %t2.map
|
|
# RUN: echo 'objects:' >> %t2.map
|
|
# RUN: echo " - filename: '%t.o'" >> %t2.map
|
|
# RUN: echo ' symbols:' >> %t2.map
|
|
# RUN: echo ' - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x10000, size: 0x10 }' >> %t2.map
|
|
# RUN: echo '...' >> %t2.map
|
|
# RUN: dsymutil --linker=parallel -y %t2.map -f -o - | llvm-dwarfdump -a - | FileCheck %s
|
|
|
|
## This test checks debug info for the template parameters of the class.
|
|
## (i.e. number of the parameters is correct, names of the parameters
|
|
## are correct, types of the parameters are correct)
|
|
|
|
# CHECK: file format Mach-O 64-bit x86-64
|
|
# CHECK: 0x0000000b: DW_TAG_compile_unit
|
|
# CHECK: DW_AT_producer{{.*}}"llvm DWARFLinkerParallel library version
|
|
# CHECK: DW_AT_language{{.*}}DW_LANG_C_plus_plus
|
|
# CHECK: DW_AT_name{{.*}}"__artificial_type_unit"
|
|
# CHECK: 0x[[CHAR:[0-9a-f]*]]: DW_TAG_base_type
|
|
# CHECK: DW_AT_name{{.*}}"char"
|
|
# CHECK: 0x[[FLOAT:[0-9a-f]*]]: DW_TAG_base_type
|
|
# CHECK: DW_AT_name{{.*}}"float"
|
|
# CHECK: 0x[[INT:[0-9a-f]*]]: DW_TAG_base_type
|
|
# CHECK: DW_AT_name{{.*}}"int"
|
|
# CHECK: 0x[[CLASS:[0-9a-f]*]]: DW_TAG_class_type
|
|
# CHECK: DW_AT_name{{.*}}"parametrized-class"
|
|
# CHECK: DW_TAG_template_type_parameter
|
|
# CHECK: DW_AT_type{{.*}}(0x[[INT]] "int"
|
|
# CHECK: DW_AT_name{{.*}}"Type1"
|
|
# CHECK: DW_AT_type{{.*}}(0x[[CHAR]] "char"
|
|
# CHECK: DW_AT_name{{.*}}"Type2"
|
|
# CHECK: DW_AT_type{{.*}}(0x[[FLOAT]] "float"
|
|
# CHECK: DW_AT_name{{.*}}"Type3"
|
|
# CHECK: DW_TAG_compile_unit
|
|
# CHECK: DW_TAG_variable
|
|
# CHECK: DW_AT_type (0x00000000[[CLASS]]
|
|
|
|
|
|
--- !mach-o
|
|
FileHeader:
|
|
magic: 0xFEEDFACF
|
|
cputype: 0x01000007
|
|
cpusubtype: 0x00000003
|
|
filetype: 0x00000001
|
|
ncmds: 2
|
|
sizeofcmds: 376
|
|
flags: 0x00002000
|
|
reserved: 0x00000000
|
|
LoadCommands:
|
|
- cmd: LC_SEGMENT_64
|
|
cmdsize: 232
|
|
segname: ''
|
|
vmaddr: 0x00
|
|
vmsize: 0x300
|
|
fileoff: 0x300
|
|
filesize: 0x300
|
|
maxprot: 7
|
|
initprot: 7
|
|
nsects: 2
|
|
flags: 0
|
|
Sections:
|
|
- sectname: __debug_abbrev
|
|
segname: __DWARF
|
|
addr: 0x000000000000000F
|
|
size: 0x37
|
|
offset: 0x00000380
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_info
|
|
segname: __DWARF
|
|
addr: 0x000000000000100
|
|
size: 0x7B
|
|
offset: 0x000003B7
|
|
align: 0
|
|
reloff: 0x00000600
|
|
nreloc: 1
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
relocations:
|
|
- address: 0x000001FC
|
|
symbolnum: 1
|
|
pcrel: true
|
|
length: 3
|
|
extern: false
|
|
type: 0
|
|
scattered: false
|
|
value: 0
|
|
- cmd: LC_SYMTAB
|
|
cmdsize: 24
|
|
symoff: 0x700
|
|
nsyms: 1
|
|
stroff: 0x710
|
|
strsize: 10
|
|
LinkEditData:
|
|
NameList:
|
|
- n_strx: 1
|
|
n_type: 0x0F
|
|
n_sect: 1
|
|
n_desc: 0
|
|
n_value: 0
|
|
StringTable:
|
|
- ''
|
|
- '__Z3foov'
|
|
- ''
|
|
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
|
|
- Tag: DW_TAG_class_type
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_template_type_parameter
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref_addr
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Tag: DW_TAG_template_value_parameter
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref_addr
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_string
|
|
- Attribute: DW_AT_const_value
|
|
Form: DW_FORM_data4
|
|
- 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_data4
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref_addr
|
|
debug_info:
|
|
- Version: 4
|
|
Entries:
|
|
- AbbrCode: 1
|
|
Values:
|
|
- CStr: by_hand
|
|
- Value: 0x04
|
|
- AbbrCode: 2
|
|
Values:
|
|
- CStr: parametrized-class
|
|
- AbbrCode: 3
|
|
Values:
|
|
- Value: 0x0000005B
|
|
- CStr: Type1
|
|
- AbbrCode: 3
|
|
Values:
|
|
- Value: 0x00000060
|
|
- CStr: Type2
|
|
- AbbrCode: 4
|
|
Values:
|
|
- Value: 0x0000005B
|
|
- CStr: Type1
|
|
- Value: 0x0FE
|
|
- AbbrCode: 3
|
|
Values:
|
|
- Value: 0x00000066
|
|
- CStr: Type3
|
|
- AbbrCode: 0
|
|
- AbbrCode: 5
|
|
Values:
|
|
- CStr: int
|
|
- AbbrCode: 5
|
|
Values:
|
|
- CStr: char
|
|
- AbbrCode: 5
|
|
Values:
|
|
- CStr: float
|
|
- AbbrCode: 6
|
|
Values:
|
|
- CStr: var
|
|
- Value: 0x000000FF
|
|
- Value: 0x00000016
|
|
- AbbrCode: 0
|
|
...
|