[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / ObjectYAML / MachO / DWARF-debug_ranges.yaml
blob90ccc36774f3539e828db60effdeeb4126944bd3
1 ## Test that yaml2obj and obj2yaml can create mach-o files with valid
2 ## __debug_ranges section.
3 ##
4 ## The DWARF should end up looking like:
5 ##
6 ## 0x0000000b: DW_TAG_compile_unit
7 ##               DW_AT_name        ("/tmp/main.c")
8 ##               DW_AT_language    (DW_LANG_C_plus_plus)
9 ##               DW_AT_low_pc      (0x0000000000000000)
10 ##               DW_AT_ranges      (0x00000000
11 ##                  [0x0000000000000000, 0x0000000000000020)
12 ##                  [0x0000000000000000, 0x0000000000000030)
13 ##                  [0x0000000000001000, 0x0000000000002000))
14 ##               DW_AT_stmt_list   (0x00000000)
16 ## 0x00000022:   DW_TAG_subprogram
17 ##                 DW_AT_name      ("stripped1")
18 ##                 DW_AT_low_pc    (0x0000000000000000)
19 ##                 DW_AT_high_pc   (0x0000000000000020)
21 ## 0x00000033:   DW_TAG_subprogram
22 ##                 DW_AT_name      ("stripped2")
23 ##                 DW_AT_low_pc    (0x0000000000000000)
24 ##                 DW_AT_high_pc   (0x0000000000000030)
26 ## 0x00000048:   DW_TAG_subprogram
27 ##                 DW_AT_name      ("main")
28 ##                 DW_AT_low_pc    (0x0000000000001000)
29 ##                 DW_AT_high_pc   (0x0000000000002000)
31 ## 0x00000059:   NULL
33 # RUN: yaml2obj %s > %t
34 # RUN: llvm-dwarfdump %t | FileCheck %s
35 # RUN: obj2yaml %t | FileCheck --check-prefix=YAML %s
37 # CHECK:      DW_AT_ranges      (0x00000000
38 # CHECK-NEXT: [0x0000000000000000, 0x0000000000000020)
39 # CHECK-NEXT: [0x0000000000000000, 0x0000000000000030)
40 # CHECK-NEXT: [0x0000000000001000, 0x0000000000002000))
42 # YAML:      - sectname:        __debug_ranges
43 # YAML-NEXT:   segname:         __DWARF
44 # YAML-NEXT:   addr:            0x7A
45 # YAML-NEXT:   size:            80
46 # YAML-NEXT:   offset:          0x28A
48 # YAML:      debug_ranges:
49 # YAML-NEXT:   - Offset:          0x0
50 # YAML-NEXT:     AddrSize:        0x8
51 # YAML-NEXT:     Entries:
52 # YAML-NEXT:       - LowOffset:       0x0
53 # YAML-NEXT:         HighOffset:      0x20
54 # YAML-NEXT:       - LowOffset:       0x0
55 # YAML-NEXT:         HighOffset:      0x30
56 # YAML-NEXT:       - LowOffset:       0xFFFFFFFFFFFFFFFF
57 # YAML-NEXT:         HighOffset:      0x1000
58 # YAML-NEXT:       - LowOffset:       0x0
59 # YAML-NEXT:         HighOffset:      0x1000
61 --- !mach-o
62 FileHeader:
63   magic:           0xFEEDFACF
64   cputype:         0x01000007
65   cpusubtype:      0x00000003
66   filetype:        0x00000001
67   ncmds:           4
68   sizeofcmds:      464
69   flags:           0x00002000
70   reserved:        0x00000000
71 LoadCommands:
72   - cmd:             LC_SEGMENT_64
73     cmdsize:         392
74     segname:         ''
75     vmaddr:          0
76     vmsize:          240
77     fileoff:         528
78     filesize:        240
79     maxprot:         7
80     initprot:        7
81     nsects:          4
82     flags:           0
83     Sections:
84       - sectname:        __debug_abbrev
85         segname:         __DWARF
86         addr:            0x0000000000000000
87         size:            36
88         offset:          0x00000210
89         align:           0
90         reloff:          0x00000000
91         nreloc:          0
92         flags:           0x00000000
93         reserved1:       0x00000000
94         reserved2:       0x00000000
95         reserved3:       0x00000000
96       - sectname:        __debug_info
97         segname:         __DWARF
98         addr:            0x0000000000000024
99         size:            86
100         offset:          0x00000234
101         align:           0
102         reloff:          0x00000000
103         nreloc:          0
104         flags:           0x00000000
105         reserved1:       0x00000000
106         reserved2:       0x00000000
107         reserved3:       0x00000000
108       - sectname:        __debug_ranges
109         segname:         __DWARF
110         addr:            0x000000000000007A
111         size:            80
112         offset:          0x0000028A
113         align:           0
114         reloff:          0x00000000
115         nreloc:          0
116         flags:           0x00000000
117         reserved1:       0x00000000
118         reserved2:       0x00000000
119         reserved3:       0x00000000
120       - sectname:        __debug_str
121         segname:         __DWARF
122         addr:            0x00000000000000CA
123         size:            38
124         offset:          0x000002DA
125         align:           0
126         reloff:          0x00000000
127         nreloc:          0
128         flags:           0x00000000
129         reserved1:       0x00000000
130         reserved2:       0x00000000
131         reserved3:       0x00000000
132   - cmd:             LC_SYMTAB
133     cmdsize:         24
134     symoff:          0
135     nsyms:           0
136     stroff:          768
137     strsize:         8
138   - cmd:             LC_BUILD_VERSION
139     cmdsize:         32
140     platform:        1
141     minos:           658944
142     sdk:             658944
143     ntools:          1
144     Tools:
145       - tool:            3
146         version:         34734080
147   - cmd:             LC_DATA_IN_CODE
148     cmdsize:         16
149     dataoff:         768
150     datasize:        0
151 LinkEditData:
152   StringTable:
153     - ' '
154     - ''
155     - ''
156     - ''
157     - ''
158     - ''
159     - ''
160 DWARF:
161   debug_str:
162     - ''
163     - '/tmp/main.c'
164     - stripped1
165     - stripped2
166     - main
167   debug_abbrev:
168     - Table:
169         - Code:            0x00000001
170           Tag:             DW_TAG_compile_unit
171           Children:        DW_CHILDREN_yes
172           Attributes:
173             - Attribute:       DW_AT_name
174               Form:            DW_FORM_strp
175             - Attribute:       DW_AT_language
176               Form:            DW_FORM_data2
177             - Attribute:       DW_AT_low_pc
178               Form:            DW_FORM_addr
179             - Attribute:       DW_AT_ranges
180               Form:            DW_FORM_sec_offset
181         - Code:            0x00000002
182           Tag:             DW_TAG_subprogram
183           Children:        DW_CHILDREN_no
184           Attributes:
185             - Attribute:       DW_AT_name
186               Form:            DW_FORM_strp
187             - Attribute:       DW_AT_low_pc
188               Form:            DW_FORM_addr
189             - Attribute:       DW_AT_high_pc
190               Form:            DW_FORM_data4
191         - Code:            0x00000003
192           Tag:             DW_TAG_subprogram
193           Children:        DW_CHILDREN_no
194           Attributes:
195             - Attribute:       DW_AT_name
196               Form:            DW_FORM_strp
197             - Attribute:       DW_AT_low_pc
198               Form:            DW_FORM_addr
199             - Attribute:       DW_AT_high_pc
200               Form:            DW_FORM_addr
201   debug_ranges:
202     - Offset:          0x00000000
203       Entries:
204         - LowOffset:       0x0000000000000000
205           HighOffset:      0x0000000000000020
206         - LowOffset:       0x0000000000000000
207           HighOffset:      0x0000000000000030
208         - LowOffset:       0xFFFFFFFFFFFFFFFF
209           HighOffset:      0x0000000000001000
210         - LowOffset:       0x0000000000000000
211           HighOffset:      0x0000000000001000
212   debug_info:
213     - Length:          82
214       Version:         4
215       AbbrOffset:      0
216       AddrSize:        8
217       Entries:
218         - AbbrCode:        0x00000001
219           Values:
220             - Value:           0x0000000000000001
221             - Value:           0x0000000000000004
222             - Value:           0x0000000000000000
223             - Value:           0x0000000000000000
224         - AbbrCode:        0x00000002
225           Values:
226             - Value:           0x000000000000000D
227             - Value:           0x0000000000000000
228             - Value:           0x0000000000000020
229         - AbbrCode:        0x00000003
230           Values:
231             - Value:           0x0000000000000017
232             - Value:           0x0000000000000000
233             - Value:           0x0000000000000030
234         - AbbrCode:        0x00000002
235           Values:
236             - Value:           0x0000000000000021
237             - Value:           0x0000000000001000
238             - Value:           0x0000000000001000
239         - AbbrCode:        0x00000000
240           Values:          []
243 ## Test generating and dumping an empty __debug_ranges section.
245 # RUN: yaml2obj --docnum=2 %s | obj2yaml | FileCheck %s --check-prefix=EMPTY
247 #      EMPTY: DWARF:
248 # EMPTY-NEXT:   debug_ranges:    []
249 # EMPTY-NEXT: ...
251 --- !mach-o
252 FileHeader:
253   magic:      0xFEEDFACF
254   cputype:    0x01000007
255   cpusubtype: 0x00000003
256   filetype:   0x0000000A
257   ncmds:      1
258   sizeofcmds: 232
259   flags:      0x00000000
260   reserved:   0x00000000
261 LoadCommands:
262   - cmd:      LC_SEGMENT_64
263     cmdsize:  152
264     segname:  __DWARF
265     vmaddr:   0x00
266     vmsize:   0x00
267     fileoff:  0x00
268     filesize: 0x00
269     maxprot:  0
270     initprot: 0
271     nsects:   1
272     flags:    0
273     Sections:
274       - sectname:  __debug_ranges
275         segname:   __DWARF
276         addr:      0x00
277         size:      [[SIZE=0]]
278         offset:    0x210
279         align:     0
280         reloff:    0x00000000
281         nreloc:    0
282         flags:     0x00000000
283         reserved1: 0x00000000
284         reserved2: 0x00000000
285         reserved3: 0x00000000
286         content:   [[CONTENT=<none>]]
288 ## Test generating and dumping a __debug_ranges section whose size isn't a
289 ## multiple of the address size. This test case is to ensure that when the
290 ## parser fails, the content of the __debug_ranges section will be dumped into
291 ## the 'content' entry and the 'debug_ranges' entry will not exist.
293 # RUN: yaml2obj --docnum=2 -DSIZE=3 -DCONTENT='010203' %s | obj2yaml | FileCheck %s --check-prefix=FAILS
295 #  FAILS-NOT: DWARF:
296 #      FAILS: Sections:
297 # FAILS-NEXT:   - sectname:  __debug_ranges
298 # FAILS-NEXT:     segname:   __DWARF
299 # FAILS-NEXT:     addr:      0x0
300 # FAILS-NEXT:     size:      3
301 # FAILS-NEXT:     offset:    0x210
302 # FAILS-NEXT:     align:     0
303 # FAILS-NEXT:     reloff:    0x0
304 # FAILS-NEXT:     nreloc:    0
305 # FAILS-NEXT:     flags:     0x0
306 # FAILS-NEXT:     reserved1: 0x0
307 # FAILS-NEXT:     reserved2: 0x0
308 # FAILS-NEXT:     reserved3: 0x0
309 # FAILS-NEXT:     content:   '010203'
310 # FAILS-NEXT: ...