xref: /llvm-project/llvm/test/tools/llvm-dwarfdump/X86/section_sizes_macho.test (revision 7b319df29bf4ebe690ca0c41761e46d8b0081293)
1## Check how llvm-dwarfdump calculates section sizes
2## with --show-section-sizes for Mach-O objects.
3
4# RUN: yaml2obj %s | llvm-dwarfdump - --show-section-sizes \
5# RUN:   | FileCheck %s --match-full-lines --strict-whitespace
6
7#      CHECK:----------------------------------------------------
8# CHECK-NEXT:file: {{.*}}
9# CHECK-NEXT:----------------------------------------------------
10# CHECK-NEXT:SECTION           SIZE (b)
11# CHECK-NEXT:----------------  --------
12# CHECK-NEXT:__debug_str            183 (9.78%)
13# CHECK-NEXT:__debug_abbrev          58 (3.10%)
14# CHECK-NEXT:__debug_info            83 (4.43%)
15# CHECK-NEXT:__apple_names           60 (3.21%)
16# CHECK-NEXT:__apple_objc            36 (1.92%)
17# CHECK-NEXT:__apple_namespac        36 (1.92%)
18# CHECK-NEXT:__apple_types           71 (3.79%)
19# CHECK-NEXT:__debug_line            61 (3.26%)
20# CHECK-EMPTY:
21# CHECK-NEXT: Total Size: 588  (31.41%)
22# CHECK-NEXT: Total File Size: 1872
23# CHECK-NEXT:----------------------------------------------------
24
25--- !mach-o
26FileHeader:
27  magic:           0xFEEDFACF
28  cputype:         0x01000007
29  cpusubtype:      0x00000003
30  filetype:        0x00000001
31  ncmds:           4
32  sizeofcmds:      1080
33  flags:           0x00002000
34  reserved:        0x00000000
35LoadCommands:
36  - cmd:             LC_SEGMENT_64
37    cmdsize:         952
38    segname:         ''
39    vmaddr:          0
40    vmsize:          701
41    fileoff:         1112
42    filesize:        701
43    maxprot:         7
44    initprot:        7
45    nsects:          11
46    flags:           0
47    Sections:
48## This is a debug section following the ELF naming style, and is used
49## to show that such sections are not included in the report.
50      - sectname:        .debug_line
51        segname:         __DWARF
52        addr:            0x0000000000000000
53        size:            15
54        offset:          0x00000458
55        align:           4
56        reloff:          0x00000000
57        nreloc:          0
58        flags:           0x80000400
59        reserved1:       0x00000000
60        reserved2:       0x00000000
61        reserved3:       0x00000000
62        content:         554889E531C0C745FC000000005DC3
63      - sectname:        __debug_str
64        segname:         __DWARF
65        addr:            0x000000000000000F
66        size:            183
67        offset:          0x00000467
68        align:           0
69        reloff:          0x00000000
70        nreloc:          0
71        flags:           0x02000000
72        reserved1:       0x00000000
73        reserved2:       0x00000000
74        reserved3:       0x00000000
75      - sectname:        __debug_abbrev
76        segname:         __DWARF
77        addr:            0x00000000000000C6
78        size:            58
79        offset:          0x0000051E
80        align:           0
81        reloff:          0x00000000
82        nreloc:          0
83        flags:           0x02000000
84        reserved1:       0x00000000
85        reserved2:       0x00000000
86        reserved3:       0x00000000
87      - sectname:        __debug_info
88        segname:         __DWARF
89        addr:            0x0000000000000100
90        size:            83
91        offset:          0x00000558
92        align:           0
93        reloff:          0x00000718
94        nreloc:          2
95        flags:           0x02000000
96        reserved1:       0x00000000
97        reserved2:       0x00000000
98        reserved3:       0x00000000
99        relocations:
100          - address:         0x00000033
101            symbolnum:       1
102            pcrel:           false
103            length:          3
104            extern:          false
105            type:            0
106            scattered:       false
107            value:           0
108          - address:         0x00000026
109            symbolnum:       1
110            pcrel:           false
111            length:          3
112            extern:          false
113            type:            0
114            scattered:       false
115            value:           0
116      - sectname:        __apple_names
117        segname:         __DWARF
118        addr:            0x0000000000000153
119        size:            60
120        offset:          0x000005AB
121        align:           0
122        reloff:          0x00000000
123        nreloc:          0
124        flags:           0x02000000
125        reserved1:       0x00000000
126        reserved2:       0x00000000
127        reserved3:       0x00000000
128        content:         485341480100000001000000010000000C000000000000000100000001000600000000006A7F9A7C2C000000AE000000010000003200000000000000
129      - sectname:        __apple_objc
130        segname:         __DWARF
131        addr:            0x000000000000018F
132        size:            36
133        offset:          0x000005E7
134        align:           0
135        reloff:          0x00000000
136        nreloc:          0
137        flags:           0x02000000
138        reserved1:       0x00000000
139        reserved2:       0x00000000
140        reserved3:       0x00000000
141        content:         485341480100000001000000000000000C000000000000000100000001000600FFFFFFFF
142      - sectname:        __apple_namespac
143        segname:         __DWARF
144        addr:            0x00000000000001B3
145        size:            36
146        offset:          0x0000060B
147        align:           0
148        reloff:          0x00000000
149        nreloc:          0
150        flags:           0x02000000
151        reserved1:       0x00000000
152        reserved2:       0x00000000
153        reserved3:       0x00000000
154        content:         485341480100000001000000000000000C000000000000000100000001000600FFFFFFFF
155      - sectname:        __apple_types
156        segname:         __DWARF
157        addr:            0x00000000000001D7
158        size:            71
159        offset:          0x0000062F
160        align:           0
161        reloff:          0x00000000
162        nreloc:          0
163        flags:           0x02000000
164        reserved1:       0x00000000
165        reserved2:       0x00000000
166        reserved3:       0x00000000
167        content:         48534148010000000100000001000000140000000000000003000000010006000300050004000B00000000003080880B34000000B3000000010000004B00000024000000000000
168      - sectname:        __compact_unwind
169        segname:         __LD
170        addr:            0x0000000000000220
171        size:            32
172        offset:          0x00000678
173        align:           3
174        reloff:          0x00000728
175        nreloc:          1
176        flags:           0x02000000
177        reserved1:       0x00000000
178        reserved2:       0x00000000
179        reserved3:       0x00000000
180        content:         00000000000000000F0000000000000100000000000000000000000000000000
181        relocations:
182          - address:         0x00000000
183            symbolnum:       1
184            pcrel:           false
185            length:          3
186            extern:          false
187            type:            0
188            scattered:       false
189            value:           0
190      - sectname:        __eh_frame
191        segname:         __TEXT
192        addr:            0x0000000000000240
193        size:            64
194        offset:          0x00000698
195        align:           3
196        reloff:          0x00000000
197        nreloc:          0
198        flags:           0x6800000B
199        reserved1:       0x00000000
200        reserved2:       0x00000000
201        reserved3:       0x00000000
202        content:         1400000000000000017A520001781001100C070890010000240000001C000000A0FDFFFFFFFFFFFF0F0000000000000000410E108602430D0600000000000000
203      - sectname:        __debug_line
204        segname:         __DWARF
205        addr:            0x0000000000000280
206        size:            61
207        offset:          0x000006D8
208        align:           0
209        reloff:          0x00000730
210        nreloc:          1
211        flags:           0x02000000
212        reserved1:       0x00000000
213        reserved2:       0x00000000
214        reserved3:       0x00000000
215        relocations:
216          - address:         0x0000002B
217            symbolnum:       1
218            pcrel:           false
219            length:          3
220            extern:          false
221            type:            0
222            scattered:       false
223            value:           0
224  - cmd:             LC_BUILD_VERSION
225    cmdsize:         24
226    platform:        1
227    minos:           720896
228    sdk:             720896
229    ntools:          0
230  - cmd:             LC_SYMTAB
231    cmdsize:         24
232    symoff:          1848
233    nsyms:           1
234    stroff:          1864
235    strsize:         8
236  - cmd:             LC_DYSYMTAB
237    cmdsize:         80
238    ilocalsym:       0
239    nlocalsym:       0
240    iextdefsym:      0
241    nextdefsym:      1
242    iundefsym:       1
243    nundefsym:       0
244    tocoff:          0
245    ntoc:            0
246    modtaboff:       0
247    nmodtab:         0
248    extrefsymoff:    0
249    nextrefsyms:     0
250    indirectsymoff:  0
251    nindirectsyms:   0
252    extreloff:       0
253    nextrel:         0
254    locreloff:       0
255    nlocrel:         0
256LinkEditData:
257  NameList:
258    - n_strx:          1
259      n_type:          0x0F
260      n_sect:          1
261      n_desc:          0
262      n_value:         0
263  StringTable:
264    - ''
265    - _main
266    - ''
267...
268