xref: /llvm-project/llvm/test/DebugInfo/Symbolize/ELF/data-command-symtab.yaml (revision cead4eceb01b935fae07bf4a7e91911b344d2fec)
1## Function and data symbols have different addresses so internally we treat
2## STT_NOTYPE/STT_FUNC/STT_DATA/etc the same. The DATA command may get a function
3## as result. For regular applications, the input addresses are guaranteed to be
4## related to data symbols.
5# RUN: yaml2obj %s -o %t
6# RUN: llvm-symbolizer --obj=%t 'DATA 0x1000' 'DATA 0x2000' 'DATA 0x2002' | FileCheck %s
7
8# CHECK:       func
9# CHECK-NEXT:  4096 1
10# CHECK-NEXT:  ??:?
11# CHECK-EMPTY:
12# CHECK-NEXT:  data
13# CHECK-NEXT:  8192 2
14# CHECK-NEXT:  ??:?
15# CHECK-EMPTY:
16# CHECK-NEXT:  notype
17# CHECK-NEXT:  8194 3
18# CHECK-NEXT:  ??:?
19# CHECK-EMPTY:
20
21--- !ELF
22FileHeader:
23  Class:   ELFCLASS64
24  Data:    ELFDATA2LSB
25  Type:    ET_EXEC
26  Machine: EM_X86_64
27Sections:
28  - Name:    .text
29    Type:    SHT_PROGBITS
30    Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
31    Address: 0x1000
32    Size:    1
33  - Name:    .data
34    Type:    SHT_PROGBITS
35    Flags:   [ SHF_WRITE, SHF_ALLOC ]
36    Address: 0x2000
37    Size:    5
38Symbols:
39  - Name:    func
40    Type:    STT_FUNC
41    Section: .text
42    Binding: STB_GLOBAL
43    Value:   0x1000
44    Size:    1
45  - Name:    data
46    Type:    STT_OBJECT
47    Section: .data
48    Binding: STB_GLOBAL
49    Value:   0x2000
50    Size:    2
51  - Name:    notype
52    Section: .data
53    Binding: STB_GLOBAL
54    Value:   0x2002
55    Size:    3
56