xref: /llvm-project/llvm/test/tools/llvm-readtapi/stubify-ehtypes.test (revision 4460fa8814d4c86e1d22f830078d7bad69bc0ecc)
1; RUN: rm -rf %t
2; RUN: split-file %s %t
3; RUN: yaml2obj %t/EHTypes.yaml -o %t/EHTypes
4; RUN: llvm-readtapi -stubify %t/EHTypes -o %t/EHTypes.tbd 2>&1 | FileCheck %s --allow-empty
5; RUN: llvm-readtapi -compare %t/EHTypes.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty
6
7; CHECK-NOT: error:
8; CHECK-NOT: warning:
9
10;--- expected.tbd
11{
12  "main_library": {
13    "exported_symbols": [
14      {
15        "data": {
16          "objc_class": [
17            "Custom"
18          ],
19          "weak": [
20            "_OBJC_EHTYPE_$_NSObject"
21          ]
22        }
23      }
24    ],
25    "flags": [
26      {
27        "attributes": [
28          "not_app_extension_safe"
29        ]
30      }
31    ],
32    "install_names": [
33      {
34        "name": "/System/Library/Frameworks/EHTypes.framework/Versions/A/EHTypes"
35      }
36    ],
37    "target_info": [
38      {
39        "min_deployment": "13",
40        "target": "x86_64-macos"
41      }
42    ]
43  },
44  "tapi_tbd_version": 5
45}
46
47;--- EHTypes.yaml
48--- !mach-o
49FileHeader:
50  magic:           0xFEEDFACF
51  cputype:         0x1000007
52  cpusubtype:      0x3
53  filetype:        0x6
54  ncmds:           16
55  sizeofcmds:      2208
56  flags:           0x118085
57  reserved:        0x0
58LoadCommands:
59  - cmd:             LC_SEGMENT_64
60    cmdsize:         712
61    segname:         __TEXT
62    vmaddr:          0
63    vmsize:          12288
64    fileoff:         0
65    filesize:        12288
66    maxprot:         5
67    initprot:        5
68    nsects:          8
69    flags:           0
70    Sections:
71      - sectname:        __text
72        segname:         __TEXT
73        addr:            0x1CC0
74        size:            84
75        offset:          0x1CC0
76        align:           0
77        reloff:          0x0
78        nreloc:          0
79        flags:           0x80000400
80        reserved1:       0x0
81        reserved2:       0x0
82        reserved3:       0x0
83        content:         554889E55350488D3D4B13000031C0E84C0000004883C4085B5DC34889C383FA0175294889DFE83B000000488D3D4613000031C0E8270000004883C4085B5DE9160000004889C3E80E0000004889DFE800000000
84      - sectname:        __stubs
85        segname:         __TEXT
86        addr:            0x1D14
87        size:            24
88        offset:          0x1D14
89        align:           2
90        reloff:          0x0
91        nreloc:          0
92        flags:           0x80000408
93        reserved1:       0x3
94        reserved2:       0x6
95        reserved3:       0x0
96        content:         FF25E6220000FF25E8220000FF25EA220000FF25EC220000
97      - sectname:        __stub_helper
98        segname:         __TEXT
99        addr:            0x1D2C
100        size:            56
101        offset:          0x1D2C
102        align:           2
103        reloff:          0x0
104        nreloc:          0
105        flags:           0x80000400
106        reserved1:       0x0
107        reserved2:       0x0
108        reserved3:       0x0
109        content:         4C8D1D052300004153FF25D5120000906800000000E9E6FFFFFF6816000000E9DCFFFFFF682C000000E9D2FFFFFF6839000000E9C8FFFFFF
110      - sectname:        __gcc_except_tab
111        segname:         __TEXT
112        addr:            0x1D64
113        size:            28
114        offset:          0x1D64
115        align:           2
116        reloff:          0x0
117        nreloc:          0
118        flags:           0x0
119        reserved1:       0x0
120        reserved2:       0x0
121        reserved3:       0x0
122        content:         FF9B190110060E1B01141700002B0E4400391B000001000084120000
123      - sectname:        __cstring
124        segname:         __TEXT
125        addr:            0x1D80
126        size:            44
127        offset:          0x1D80
128        align:           0
129        reloff:          0x0
130        nreloc:          0
131        flags:           0x2
132        reserved1:       0x0
133        reserved2:       0x0
134        reserved3:       0x0
135        content:         4E534F626A65637400437573746F6D0074727920626C6F636B00657863657074696F6E0076313640303A3800
136      - sectname:        __objc_methname
137        segname:         __TEXT
138        addr:            0x1DAC
139        size:            10
140        offset:          0x1DAC
141        align:           0
142        reloff:          0x0
143        nreloc:          0
144        flags:           0x2
145        reserved1:       0x0
146        reserved2:       0x0
147        reserved3:       0x0
148        content:         74657374436C61737300
149      - sectname:        __unwind_info
150        segname:         __TEXT
151        addr:            0x1DB8
152        size:            4164
153        offset:          0x1DB8
154        align:           2
155        reloff:          0x0
156        nreloc:          0
157        flags:           0x0
158        reserved1:       0x0
159        reserved2:       0x0
160        reserved3:       0x0
161        content:         010000001C00000001000000200000000100000024000000020000000100015108300000C01C0000440000003C000000141D00000000000044000000C01C0000641D0000030000000C0001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
162      - sectname:        __eh_frame
163        segname:         __TEXT
164        addr:            0x2E00
165        size:            32
166        offset:          0x2E00
167        align:           3
168        reloff:          0x0
169        nreloc:          0
170        flags:           0x6000000B
171        reserved1:       0x0
172        reserved2:       0x0
173        reserved3:       0x0
174        content:         1C00000000000000017A504C5200017810079BF501000010100C070890010000
175  - cmd:             LC_SEGMENT_64
176    cmdsize:         392
177    segname:         __DATA_CONST
178    vmaddr:          12288
179    vmsize:          4096
180    fileoff:         12288
181    filesize:        4096
182    maxprot:         3
183    initprot:        3
184    nsects:          4
185    flags:           16
186    Sections:
187      - sectname:        __got
188        segname:         __DATA_CONST
189        addr:            0x3000
190        size:            24
191        offset:          0x3000
192        align:           3
193        reloff:          0x0
194        nreloc:          0
195        flags:           0x6
196        reserved1:       0x0
197        reserved2:       0x0
198        reserved3:       0x0
199        content:         '204000000000000000000000000000000000000000000000'
200      - sectname:        __cfstring
201        segname:         __DATA_CONST
202        addr:            0x3018
203        size:            64
204        offset:          0x3018
205        align:           3
206        reloff:          0x0
207        nreloc:          0
208        flags:           0x0
209        reserved1:       0x0
210        reserved2:       0x0
211        reserved3:       0x0
212        content:         0000000000000000C807000000000000901D00000000000009000000000000000000000000000000C8070000000000009A1D0000000000000900000000000000
213      - sectname:        __objc_classlist
214        segname:         __DATA_CONST
215        addr:            0x3058
216        size:            8
217        offset:          0x3058
218        align:           3
219        reloff:          0x0
220        nreloc:          0
221        flags:           0x10000000
222        reserved1:       0x0
223        reserved2:       0x0
224        reserved3:       0x0
225        content:         '1841000000000000'
226      - sectname:        __objc_imageinfo
227        segname:         __DATA_CONST
228        addr:            0x3060
229        size:            8
230        offset:          0x3060
231        align:           0
232        reloff:          0x0
233        nreloc:          0
234        flags:           0x0
235        reserved1:       0x0
236        reserved2:       0x0
237        reserved3:       0x0
238        content:         '0000000040000000'
239  - cmd:             LC_SEGMENT_64
240    cmdsize:         392
241    segname:         __DATA
242    vmaddr:          16384
243    vmsize:          4096
244    fileoff:         16384
245    filesize:        4096
246    maxprot:         3
247    initprot:        3
248    nsects:          4
249    flags:           0
250    Sections:
251      - sectname:        __la_symbol_ptr
252        segname:         __DATA
253        addr:            0x4000
254        size:            32
255        offset:          0x4000
256        align:           3
257        reloff:          0x0
258        nreloc:          0
259        flags:           0x7
260        reserved1:       0x7
261        reserved2:       0x0
262        reserved3:       0x0
263        content:         3C1D000000000000461D000000000000501D0000000000005A1D000000000000
264      - sectname:        __data
265        segname:         __DATA
266        addr:            0x4020
267        size:            32
268        offset:          0x4020
269        align:           3
270        reloff:          0x0
271        nreloc:          0
272        flags:           0x0
273        reserved1:       0x0
274        reserved2:       0x0
275        reserved3:       0x0
276        content:         1000000000000000801D00000000000000000000000000000000000000000000
277      - sectname:        __objc_const
278        segname:         __DATA
279        addr:            0x4040
280        size:            176
281        offset:          0x4040
282        align:           3
283        reloff:          0x0
284        nreloc:          0
285        flags:           0x0
286        reserved1:       0x0
287        reserved2:       0x0
288        reserved3:       0x0
289        content:         1800000001000000AC1D000000000000A41D000000000000C01C000000000000010000002800000028000000000000000000000000000000891D00000000000040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000008000000000000000000000000000000891D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
290      - sectname:        __objc_data
291        segname:         __DATA
292        addr:            0x40F0
293        size:            80
294        offset:          0x40F0
295        align:           3
296        reloff:          0x0
297        nreloc:          0
298        flags:           0x0
299        reserved1:       0x0
300        reserved2:       0x0
301        reserved3:       0x0
302        content:         00000000000000000000000000000000000000000000000000000000000000006040000000000000F040000000000000000000000000000000000000000000000000000000000000A840000000000000
303  - cmd:             LC_SEGMENT_64
304    cmdsize:         72
305    segname:         __LINKEDIT
306    vmaddr:          20480
307    vmsize:          1272
308    fileoff:         20480
309    filesize:        1272
310    maxprot:         1
311    initprot:        1
312    nsects:          0
313    flags:           0
314  - cmd:             LC_DYLD_INFO_ONLY
315    cmdsize:         48
316    rebase_off:      20480
317    rebase_size:     32
318    bind_off:        20512
319    bind_size:       224
320    weak_bind_off:   20736
321    weak_bind_size:  32
322    lazy_bind_off:   20768
323    lazy_bind_size:  88
324    export_off:      20856
325    export_size:     88
326  - cmd:             LC_SYMTAB
327    cmdsize:         24
328    symoff:          20952
329    nsyms:           20
330    stroff:          21320
331    strsize:         432
332  - cmd:             LC_DYSYMTAB
333    cmdsize:         80
334    ilocalsym:       0
335    nlocalsym:       6
336    iextdefsym:      6
337    nextdefsym:      3
338    iundefsym:       9
339    nundefsym:       11
340    tocoff:          0
341    ntoc:            0
342    modtaboff:       0
343    nmodtab:         0
344    extrefsymoff:    0
345    nextrefsyms:     0
346    indirectsymoff:  21272
347    nindirectsyms:   11
348    extreloff:       0
349    nextrel:         0
350    locreloff:       0
351    nlocrel:         0
352  - cmd:             LC_ID_DYLIB
353    cmdsize:         88
354    dylib:
355      name:            24
356      timestamp:       0
357      current_version: 65536
358      compatibility_version: 65536
359    Content:         '/System/Library/Frameworks/EHTypes.framework/Versions/A/EHTypes'
360    ZeroPadBytes:    1
361  - cmd:             LC_UUID
362    cmdsize:         24
363    uuid:            4C4C44D7-5555-3144-A1F0-5AD6F1CB175B
364  - cmd:             LC_BUILD_VERSION
365    cmdsize:         32
366    platform:        1
367    minos:           851968
368    sdk:             918272
369    ntools:          1
370    Tools:
371      - tool:            4
372        version:         1245184
373  - cmd:             LC_LOAD_DYLIB
374    cmdsize:         96
375    dylib:
376      name:            24
377      timestamp:       0
378      current_version: 144310272
379      compatibility_version: 19660800
380    Content:         '/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation'
381    ZeroPadBytes:    3
382  - cmd:             LC_LOAD_DYLIB
383    cmdsize:         104
384    dylib:
385      name:            24
386      timestamp:       0
387      current_version: 144310272
388      compatibility_version: 9830400
389    Content:         '/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation'
390    ZeroPadBytes:    3
391  - cmd:             LC_LOAD_DYLIB
392    cmdsize:         56
393    dylib:
394      name:            24
395      timestamp:       0
396      current_version: 14942208
397      compatibility_version: 65536
398    Content:         '/usr/lib/libobjc.A.dylib'
399    ZeroPadBytes:    8
400  - cmd:             LC_LOAD_DYLIB
401    cmdsize:         56
402    dylib:
403      name:            24
404      timestamp:       0
405      current_version: 87576577
406      compatibility_version: 65536
407    Content:         '/usr/lib/libSystem.B.dylib'
408    ZeroPadBytes:    6
409  - cmd:             LC_FUNCTION_STARTS
410    cmdsize:         16
411    dataoff:         20944
412    datasize:        8
413  - cmd:             LC_DATA_IN_CODE
414    cmdsize:         16
415    dataoff:         20952
416    datasize:        0
417LinkEditData:
418  RebaseOpcodes:
419    - Opcode:          REBASE_OPCODE_SET_TYPE_IMM
420      Imm:             1
421    - Opcode:          REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
422      Imm:             1
423      ExtraData:       [ 0x0 ]
424    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
425      Imm:             0
426      ExtraData:       [ 0x20 ]
427    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
428      Imm:             0
429      ExtraData:       [ 0x18 ]
430    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
431      Imm:             0
432      ExtraData:       [ 0x2, 0x8 ]
433    - Opcode:          REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
434      Imm:             2
435      ExtraData:       [ 0x0 ]
436    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
437      Imm:             4
438    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
439      Imm:             1
440    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
441      Imm:             0
442      ExtraData:       [ 0x18 ]
443    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
444      Imm:             3
445    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
446      Imm:             3
447    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
448      Imm:             2
449    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
450      Imm:             7
451    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
452      Imm:             0
453      ExtraData:       [ 0x48 ]
454    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
455      Imm:             2
456    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
457      Imm:             3
458    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
459      Imm:             1
460    - Opcode:          REBASE_OPCODE_DONE
461      Imm:             0
462  BindOpcodes:
463    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
464      Imm:             0
465      Symbol:          ___objc_personality_v0
466    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
467      Imm:             1
468      Symbol:          ''
469    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
470      Imm:             3
471      Symbol:          ''
472    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
473      Imm:             1
474      ULEBExtraData:   [ 0x8 ]
475      Symbol:          ''
476    - Opcode:          BIND_OPCODE_DO_BIND
477      Imm:             0
478      Symbol:          ''
479    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
480      Imm:             0
481      Symbol:          dyld_stub_binder
482    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
483      Imm:             1
484      Symbol:          ''
485    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
486      Imm:             4
487      Symbol:          ''
488    - Opcode:          BIND_OPCODE_DO_BIND
489      Imm:             0
490      Symbol:          ''
491    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
492      Imm:             0
493      Symbol:          ___CFConstantStringClassReference
494    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
495      Imm:             1
496      Symbol:          ''
497    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
498      Imm:             2
499      Symbol:          ''
500    - Opcode:          BIND_OPCODE_DO_BIND
501      Imm:             0
502      Symbol:          ''
503    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
504      Imm:             0
505      ULEBExtraData:   [ 0x18 ]
506      Symbol:          ''
507    - Opcode:          BIND_OPCODE_DO_BIND
508      Imm:             0
509      Symbol:          ''
510    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
511      Imm:             0
512      Symbol:          _objc_ehtype_vtable
513    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
514      Imm:             1
515      Symbol:          ''
516    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
517      Imm:             3
518      Symbol:          ''
519    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
520      Imm:             2
521      ULEBExtraData:   [ 0x20 ]
522      Symbol:          ''
523    - Opcode:          BIND_OPCODE_SET_ADDEND_SLEB
524      Imm:             0
525      SLEBExtraData:   [ 16 ]
526      Symbol:          ''
527    - Opcode:          BIND_OPCODE_DO_BIND
528      Imm:             0
529      Symbol:          ''
530    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
531      Imm:             0
532      Symbol:          '_OBJC_CLASS_$_NSObject'
533    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
534      Imm:             1
535      Symbol:          ''
536    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
537      Imm:             0
538      ULEBExtraData:   [ 0x8 ]
539      Symbol:          ''
540    - Opcode:          BIND_OPCODE_SET_ADDEND_SLEB
541      Imm:             0
542      SLEBExtraData:   [ 0 ]
543      Symbol:          ''
544    - Opcode:          BIND_OPCODE_DO_BIND
545      Imm:             0
546      Symbol:          ''
547    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
548      Imm:             0
549      ULEBExtraData:   [ 0xE8 ]
550      Symbol:          ''
551    - Opcode:          BIND_OPCODE_DO_BIND
552      Imm:             0
553      Symbol:          ''
554    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
555      Imm:             0
556      Symbol:          '_OBJC_METACLASS_$_NSObject'
557    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
558      Imm:             1
559      Symbol:          ''
560    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
561      Imm:             0
562      ULEBExtraData:   [ 0xFFFFFFFFFFFFFFC8 ]
563      Symbol:          ''
564    - Opcode:          BIND_OPCODE_DO_BIND
565      Imm:             0
566      Symbol:          ''
567    - Opcode:          BIND_OPCODE_DO_BIND
568      Imm:             0
569      Symbol:          ''
570    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
571      Imm:             0
572      Symbol:          __objc_empty_cache
573    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
574      Imm:             1
575      Symbol:          ''
576    - Opcode:          BIND_OPCODE_DO_BIND
577      Imm:             0
578      Symbol:          ''
579    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
580      Imm:             0
581      ULEBExtraData:   [ 0x20 ]
582      Symbol:          ''
583    - Opcode:          BIND_OPCODE_DO_BIND
584      Imm:             0
585      Symbol:          ''
586    - Opcode:          BIND_OPCODE_DONE
587      Imm:             0
588      Symbol:          ''
589  WeakBindOpcodes:
590    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
591      Imm:             0
592      Symbol:          '_OBJC_EHTYPE_$_NSObject'
593    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
594      Imm:             1
595      Symbol:          ''
596    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
597      Imm:             1
598      ULEBExtraData:   [ 0x0 ]
599      Symbol:          ''
600    - Opcode:          BIND_OPCODE_DO_BIND
601      Imm:             0
602      Symbol:          ''
603    - Opcode:          BIND_OPCODE_DONE
604      Imm:             0
605      Symbol:          ''
606  LazyBindOpcodes:
607    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
608      Imm:             2
609      ULEBExtraData:   [ 0x0 ]
610      Symbol:          ''
611    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
612      Imm:             4
613      Symbol:          ''
614    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
615      Imm:             0
616      Symbol:          __Unwind_Resume
617    - Opcode:          BIND_OPCODE_DO_BIND
618      Imm:             0
619      Symbol:          ''
620    - Opcode:          BIND_OPCODE_DONE
621      Imm:             0
622      Symbol:          ''
623    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
624      Imm:             2
625      ULEBExtraData:   [ 0x8 ]
626      Symbol:          ''
627    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
628      Imm:             3
629      Symbol:          ''
630    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
631      Imm:             0
632      Symbol:          _objc_end_catch
633    - Opcode:          BIND_OPCODE_DO_BIND
634      Imm:             0
635      Symbol:          ''
636    - Opcode:          BIND_OPCODE_DONE
637      Imm:             0
638      Symbol:          ''
639    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
640      Imm:             2
641      ULEBExtraData:   [ 0x10 ]
642      Symbol:          ''
643    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
644      Imm:             1
645      Symbol:          ''
646    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
647      Imm:             0
648      Symbol:          _NSLog
649    - Opcode:          BIND_OPCODE_DO_BIND
650      Imm:             0
651      Symbol:          ''
652    - Opcode:          BIND_OPCODE_DONE
653      Imm:             0
654      Symbol:          ''
655    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
656      Imm:             2
657      ULEBExtraData:   [ 0x18 ]
658      Symbol:          ''
659    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
660      Imm:             3
661      Symbol:          ''
662    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
663      Imm:             0
664      Symbol:          _objc_begin_catch
665    - Opcode:          BIND_OPCODE_DO_BIND
666      Imm:             0
667      Symbol:          ''
668    - Opcode:          BIND_OPCODE_DONE
669      Imm:             0
670      Symbol:          ''
671    - Opcode:          BIND_OPCODE_DONE
672      Imm:             0
673      Symbol:          ''
674    - Opcode:          BIND_OPCODE_DONE
675      Imm:             0
676      Symbol:          ''
677    - Opcode:          BIND_OPCODE_DONE
678      Imm:             0
679      Symbol:          ''
680    - Opcode:          BIND_OPCODE_DONE
681      Imm:             0
682      Symbol:          ''
683    - Opcode:          BIND_OPCODE_DONE
684      Imm:             0
685      Symbol:          ''
686    - Opcode:          BIND_OPCODE_DONE
687      Imm:             0
688      Symbol:          ''
689    - Opcode:          BIND_OPCODE_DONE
690      Imm:             0
691      Symbol:          ''
692  ExportTrie:
693    TerminalSize:    0
694    NodeOffset:      0
695    Name:            ''
696    Flags:           0x0
697    Address:         0x0
698    Other:           0x0
699    ImportName:      ''
700    Children:
701      - TerminalSize:    0
702        NodeOffset:      10
703        Name:            _OBJC_
704        Flags:           0x0
705        Address:         0x0
706        Other:           0x0
707        ImportName:      ''
708        Children:
709          - TerminalSize:    4
710            NodeOffset:      67
711            Name:            'EHTYPE_$_NSObject'
712            Flags:           0x4
713            Address:         0x4020
714            Other:           0x0
715            ImportName:      ''
716          - TerminalSize:    4
717            NodeOffset:      73
718            Name:            'CLASS_$_Custom'
719            Flags:           0x0
720            Address:         0x4118
721            Other:           0x0
722            ImportName:      ''
723          - TerminalSize:    4
724            NodeOffset:      79
725            Name:            'METACLASS_$_Custom'
726            Flags:           0x0
727            Address:         0x40F0
728            Other:           0x0
729            ImportName:      ''
730  NameList:
731    - n_strx:          2
732      n_type:          0xE
733      n_sect:          1
734      n_desc:          0
735      n_value:         7360
736    - n_strx:          22
737      n_type:          0xE
738      n_sect:          4
739      n_desc:          0
740      n_value:         7524
741    - n_strx:          40
742      n_type:          0xE
743      n_sect:          15
744      n_desc:          0
745      n_value:         16448
746    - n_strx:          70
747      n_type:          0xE
748      n_sect:          15
749      n_desc:          0
750      n_value:         16480
751    - n_strx:          99
752      n_type:          0xE
753      n_sect:          15
754      n_desc:          0
755      n_value:         16552
756    - n_strx:          124
757      n_type:          0xE
758      n_sect:          14
759      n_desc:          0
760      n_value:         16440
761    - n_strx:          139
762      n_type:          0xF
763      n_sect:          14
764      n_desc:          128
765      n_value:         16416
766    - n_strx:          163
767      n_type:          0xF
768      n_sect:          16
769      n_desc:          0
770      n_value:         16624
771    - n_strx:          188
772      n_type:          0xF
773      n_sect:          16
774      n_desc:          0
775      n_value:         16664
776    - n_strx:          209
777      n_type:          0x1
778      n_sect:          0
779      n_desc:          256
780      n_value:         0
781    - n_strx:          216
782      n_type:          0x1
783      n_sect:          0
784      n_desc:          768
785      n_value:         0
786    - n_strx:          239
787      n_type:          0x1
788      n_sect:          0
789      n_desc:          768
790      n_value:         0
791    - n_strx:          266
792      n_type:          0x1
793      n_sect:          0
794      n_desc:          1024
795      n_value:         0
796    - n_strx:          282
797      n_type:          0x1
798      n_sect:          0
799      n_desc:          512
800      n_value:         0
801    - n_strx:          316
802      n_type:          0x1
803      n_sect:          0
804      n_desc:          768
805      n_value:         0
806    - n_strx:          339
807      n_type:          0x1
808      n_sect:          0
809      n_desc:          768
810      n_value:         0
811    - n_strx:          358
812      n_type:          0x1
813      n_sect:          0
814      n_desc:          768
815      n_value:         0
816    - n_strx:          376
817      n_type:          0x1
818      n_sect:          0
819      n_desc:          768
820      n_value:         0
821    - n_strx:          396
822      n_type:          0x1
823      n_sect:          0
824      n_desc:          768
825      n_value:         0
826    - n_strx:          412
827      n_type:          0x1
828      n_sect:          0
829      n_desc:          1024
830      n_value:         0
831  StringTable:
832    - ' '
833    - '+[Custom testClass]'
834    - GCC_except_table0
835    - '__OBJC_$_CLASS_METHODS_Custom'
836    - '__OBJC_METACLASS_RO_$_Custom'
837    - '__OBJC_CLASS_RO_$_Custom'
838    - __dyld_private
839    - '_OBJC_EHTYPE_$_NSObject'
840    - '_OBJC_METACLASS_$_Custom'
841    - '_OBJC_CLASS_$_Custom'
842    - _NSLog
843    - '_OBJC_CLASS_$_NSObject'
844    - '_OBJC_METACLASS_$_NSObject'
845    - __Unwind_Resume
846    - ___CFConstantStringClassReference
847    - ___objc_personality_v0
848    - __objc_empty_cache
849    - _objc_begin_catch
850    - _objc_ehtype_vtable
851    - _objc_end_catch
852    - dyld_stub_binder
853    - ''
854    - ''
855    - ''
856  IndirectSymbols: [ 0x6, 0xE, 0x13, 0xC, 0x12, 0x9, 0x10, 0xC, 0x12, 0x9,
857                     0x10 ]
858  FunctionStarts:  [ 0x1CC0 ]
859...
860