xref: /llvm-project/llvm/test/tools/llvm-objcopy/MachO/segment-size-alignment.test (revision c0da287c30c9f511ccb07fdd42c997be2caea9ec)
1# RUN: yaml2obj --docnum=1 %s -o %t.armv7
2# RUN: llvm-objdump --private-headers %t.armv7 | FileCheck %s --check-prefix=ARMV7
3
4# ARMV7:       segname __PAGEZERO
5# ARMV7-NEXT:  vmaddr 0x00000000
6# ARMV7-NEXT:  vmsize 0x00004000
7# ARMV7:       segname __TEXT
8# ARMV7-NEXT:  vmaddr 0x00004000
9# ARMV7-NEXT:  vmsize 0x00008000
10# ARMV7:       segname __LINKEDIT
11# ARMV7-NEXT:  vmaddr 0x0000c000
12# ARMV7-NEXT:  vmsize 0x00004000
13
14# RUN: yaml2obj --docnum=2 %s -o %t.arm64
15# RUN: llvm-objdump --private-headers %t.arm64 | FileCheck %s --check-prefix=ARM64
16
17# ARM64:       segname __PAGEZERO
18# ARM64-NEXT:  vmaddr 0x0000000000000000
19# ARM64-NEXT:  vmsize 0x0000000100000000
20# ARM64:       segname __TEXT
21# ARM64-NEXT:  vmaddr 0x0000000100000000
22# ARM64-NEXT:  vmsize 0x0000000000008000
23# ARM64:       segname __LINKEDIT
24# ARM64-NEXT:  vmaddr 0x0000000100008000
25# ARM64-NEXT:  vmsize 0x0000000000004000
26
27# RUN: yaml2obj --docnum=3 %s -o %t.arm64_32
28# RUN: llvm-objdump --private-headers %t.arm64_32 | FileCheck %s --check-prefix=ARM64_32
29
30# ARM64_32:       segname __PAGEZERO
31# ARM64_32-NEXT:  vmaddr 0x00000000
32# ARM64_32-NEXT:  vmsize 0x00004000
33# ARM64_32:       segname __TEXT
34# ARM64_32-NEXT:  vmaddr 0x00004000
35# ARM64_32-NEXT:  vmsize 0x00008000
36# ARM64_32:       segname __LINKEDIT
37# ARM64_32-NEXT:  vmaddr 0x0000c000
38# ARM64_32-NEXT:  vmsize 0x00004000
39
40# RUN: yaml2obj --docnum=4 %s -o %t.x86_64
41# RUN: llvm-objdump --private-headers %t.x86_64 | FileCheck %s --check-prefix=X86_64
42
43# X86_64:       segname __PAGEZERO
44# X86_64-NEXT:  vmaddr 0x0000000000000000
45# X86_64-NEXT:  vmsize 0x0000000100000000
46# X86_64:       segname __TEXT
47# X86_64-NEXT:  vmaddr 0x0000000100000000
48# X86_64-NEXT:  vmsize 0x0000000000001000
49# X86_64:       segname __LINKEDIT
50# X86_64-NEXT:  vmaddr 0x0000000100001000
51# X86_64-NEXT:  vmsize 0x0000000000001000
52
53## Input binaries:
54
55## Case 1: armv7 iOS binary.
56## This binary can be built on OSX as follows:
57## main.c: int main() { return 0; }
58## xcrun -sdk iphoneos clang -arch armv7 main.c -o main.exe
59--- !mach-o
60FileHeader:
61  magic:           0xFEEDFACE
62  cputype:         0x0000000C
63  cpusubtype:      0x00000009
64  filetype:        0x00000002
65  ncmds:           15
66  sizeofcmds:      600
67  flags:           0x00200085
68LoadCommands:
69  - cmd:             LC_SEGMENT
70    cmdsize:         56
71    segname:         __PAGEZERO
72    vmaddr:          0
73    vmsize:          16384
74    fileoff:         0
75    filesize:        0
76    maxprot:         0
77    initprot:        0
78    nsects:          0
79    flags:           0
80  - cmd:             LC_SEGMENT
81    cmdsize:         124
82    segname:         __TEXT
83    vmaddr:          16384
84    vmsize:          32768
85    fileoff:         0
86    filesize:        32768
87    maxprot:         5
88    initprot:        5
89    nsects:          1
90    flags:           0
91    Sections:
92      - sectname:        __text
93        segname:         __TEXT
94        addr:            0x000000000000BFF6
95        size:            10
96        offset:          0x00007FF6
97        align:           1
98        reloff:          0x00000000
99        nreloc:          0
100        flags:           0x80000400
101        reserved1:       0x00000000
102        reserved2:       0x00000000
103        reserved3:       0x00000000
104        content:         81B00020009001B07047
105  - cmd:             LC_SEGMENT
106    cmdsize:         56
107    segname:         __LINKEDIT
108    vmaddr:          49152
109    vmsize:          16384
110    fileoff:         32768
111    filesize:        132
112    maxprot:         1
113    initprot:        1
114    nsects:          0
115    flags:           0
116  - cmd:             LC_DYLD_INFO_ONLY
117    cmdsize:         48
118    rebase_off:      0
119    rebase_size:     0
120    bind_off:        0
121    bind_size:       0
122    weak_bind_off:   0
123    weak_bind_size:  0
124    lazy_bind_off:   0
125    lazy_bind_size:  0
126    export_off:      32768
127    export_size:     44
128  - cmd:             LC_SYMTAB
129    cmdsize:         24
130    symoff:          32816
131    nsyms:           3
132    stroff:          32852
133    strsize:         48
134  - cmd:             LC_DYSYMTAB
135    cmdsize:         80
136    ilocalsym:       0
137    nlocalsym:       0
138    iextdefsym:      0
139    nextdefsym:      2
140    iundefsym:       2
141    nundefsym:       1
142    tocoff:          0
143    ntoc:            0
144    modtaboff:       0
145    nmodtab:         0
146    extrefsymoff:    0
147    nextrefsyms:     0
148    indirectsymoff:  0
149    nindirectsyms:   0
150    extreloff:       0
151    nextrel:         0
152    locreloff:       0
153    nlocrel:         0
154  - cmd:             LC_LOAD_DYLINKER
155    cmdsize:         28
156    name:            12
157    Content:         '/usr/lib/dyld'
158    ZeroPadBytes:    3
159  - cmd:             LC_UUID
160    cmdsize:         24
161    uuid:            C84A0193-BE6F-3625-882F-CBFC052AF6CF
162  - cmd:             LC_VERSION_MIN_IPHONEOS
163    cmdsize:         16
164    version:         680803
165    sdk:             852480
166  - cmd:             LC_SOURCE_VERSION
167    cmdsize:         16
168    version:         0
169  - cmd:             LC_MAIN
170    cmdsize:         24
171    entryoff:        32759
172    stacksize:       0
173  - cmd:             LC_ENCRYPTION_INFO
174    cmdsize:         20
175    cryptoff:        16384
176    cryptsize:       16384
177    cryptid:         0
178  - cmd:             LC_LOAD_DYLIB
179    cmdsize:         52
180    dylib:
181      name:            24
182      timestamp:       2
183      current_version: 83951616
184      compatibility_version: 65536
185    Content:         '/usr/lib/libSystem.B.dylib'
186    ZeroPadBytes:    2
187  - cmd:             LC_FUNCTION_STARTS
188    cmdsize:         16
189    dataoff:         32812
190    datasize:        4
191  - cmd:             LC_DATA_IN_CODE
192    cmdsize:         16
193    dataoff:         32816
194    datasize:        0
195LinkEditData:
196  ExportTrie:
197    TerminalSize:    0
198    NodeOffset:      0
199    Name:            ''
200    Flags:           0x0000000000000000
201    Address:         0x0000000000000000
202    Other:           0x0000000000000000
203    ImportName:      ''
204    Children:
205      - TerminalSize:    0
206        NodeOffset:      5
207        Name:            _
208        Flags:           0x0000000000000000
209        Address:         0x0000000000000000
210        Other:           0x0000000000000000
211        ImportName:      ''
212        Children:
213          - TerminalSize:    2
214            NodeOffset:      33
215            Name:            _mh_execute_header
216            Flags:           0x0000000000000000
217            Address:         0x0000000000000000
218            Other:           0x0000000000000000
219            ImportName:      ''
220          - TerminalSize:    4
221            NodeOffset:      37
222            Name:            main
223            Flags:           0x0000000000000000
224            Address:         0x0000000000007FF7
225            Other:           0x0000000000000000
226            ImportName:      ''
227  NameList:
228    - n_strx:          2
229      n_type:          0x0F
230      n_sect:          1
231      n_desc:          16
232      n_value:         16384
233    - n_strx:          22
234      n_type:          0x0F
235      n_sect:          1
236      n_desc:          8
237      n_value:         49142
238    - n_strx:          28
239      n_type:          0x01
240      n_sect:          0
241      n_desc:          256
242      n_value:         0
243  StringTable:
244    - ' '
245    - __mh_execute_header
246    - _main
247    - dyld_stub_binder
248    - ''
249    - ''
250    - ''
251...
252
253## Case 2: arm64 iOS binary.
254## This binary can be built on OSX as follows:
255## main.c: int main() { return 0; }
256## xcrun -sdk iphoneos clang -arch arm64 main.c -o main.exe
257--- !mach-o
258FileHeader:
259  magic:           0xFEEDFACF
260  cputype:         0x0100000C
261  cpusubtype:      0x00000000
262  filetype:        0x00000002
263  ncmds:           15
264  sizeofcmds:      768
265  flags:           0x00200085
266  reserved:        0x00000000
267LoadCommands:
268  - cmd:             LC_SEGMENT_64
269    cmdsize:         72
270    segname:         __PAGEZERO
271    vmaddr:          0
272    vmsize:          4294967296
273    fileoff:         0
274    filesize:        0
275    maxprot:         0
276    initprot:        0
277    nsects:          0
278    flags:           0
279  - cmd:             LC_SEGMENT_64
280    cmdsize:         232
281    segname:         __TEXT
282    vmaddr:          4294967296
283    vmsize:          32768
284    fileoff:         0
285    filesize:        32768
286    maxprot:         5
287    initprot:        5
288    nsects:          2
289    flags:           0
290    Sections:
291      - sectname:        __text
292        segname:         __TEXT
293        addr:            0x0000000100007FA0
294        size:            24
295        offset:          0x00007FA0
296        align:           2
297        reloff:          0x00000000
298        nreloc:          0
299        flags:           0x80000400
300        reserved1:       0x00000000
301        reserved2:       0x00000000
302        reserved3:       0x00000000
303        content:         FF4300D1FF0F00B908008052E00308AAFF430091C0035FD6
304      - sectname:        __unwind_info
305        segname:         __TEXT
306        addr:            0x0000000100007FB8
307        size:            72
308        offset:          0x00007FB8
309        align:           2
310        reloff:          0x00000000
311        nreloc:          0
312        flags:           0x00000000
313        reserved1:       0x00000000
314        reserved2:       0x00000000
315        reserved3:       0x00000000
316        content:         010000001C000000000000001C000000000000001C00000002000000A07F00003400000034000000B97F00000000000034000000030000000C000100100001000000000000100002
317  - cmd:             LC_SEGMENT_64
318    cmdsize:         72
319    segname:         __LINKEDIT
320    vmaddr:          4295000064
321    vmsize:          16384
322    fileoff:         32768
323    filesize:        152
324    maxprot:         1
325    initprot:        1
326    nsects:          0
327    flags:           0
328  - cmd:             LC_DYLD_INFO_ONLY
329    cmdsize:         48
330    rebase_off:      0
331    rebase_size:     0
332    bind_off:        0
333    bind_size:       0
334    weak_bind_off:   0
335    weak_bind_size:  0
336    lazy_bind_off:   0
337    lazy_bind_size:  0
338    export_off:      32768
339    export_size:     48
340  - cmd:             LC_SYMTAB
341    cmdsize:         24
342    symoff:          32824
343    nsyms:           3
344    stroff:          32872
345    strsize:         48
346  - cmd:             LC_DYSYMTAB
347    cmdsize:         80
348    ilocalsym:       0
349    nlocalsym:       0
350    iextdefsym:      0
351    nextdefsym:      2
352    iundefsym:       2
353    nundefsym:       1
354    tocoff:          0
355    ntoc:            0
356    modtaboff:       0
357    nmodtab:         0
358    extrefsymoff:    0
359    nextrefsyms:     0
360    indirectsymoff:  0
361    nindirectsyms:   0
362    extreloff:       0
363    nextrel:         0
364    locreloff:       0
365    nlocrel:         0
366  - cmd:             LC_LOAD_DYLINKER
367    cmdsize:         32
368    name:            12
369    Content:         '/usr/lib/dyld'
370    ZeroPadBytes:    7
371  - cmd:             LC_UUID
372    cmdsize:         24
373    uuid:            945B24FC-E351-3186-9D74-A88A7A93392A
374  - cmd:             LC_BUILD_VERSION
375    cmdsize:         32
376    platform:        2
377    minos:           852480
378    sdk:             852480
379    ntools:          1
380    Tools:
381      - tool:            3
382        version:         34734080
383  - cmd:             LC_SOURCE_VERSION
384    cmdsize:         16
385    version:         0
386  - cmd:             LC_MAIN
387    cmdsize:         24
388    entryoff:        32672
389    stacksize:       0
390  - cmd:             LC_ENCRYPTION_INFO_64
391    cmdsize:         24
392    cryptoff:        16384
393    cryptsize:       16384
394    cryptid:         0
395    pad:             0
396  - cmd:             LC_LOAD_DYLIB
397    cmdsize:         56
398    dylib:
399      name:            24
400      timestamp:       2
401      current_version: 83951616
402      compatibility_version: 65536
403    Content:         '/usr/lib/libSystem.B.dylib'
404    ZeroPadBytes:    6
405  - cmd:             LC_FUNCTION_STARTS
406    cmdsize:         16
407    dataoff:         32816
408    datasize:        8
409  - cmd:             LC_DATA_IN_CODE
410    cmdsize:         16
411    dataoff:         32824
412    datasize:        0
413LinkEditData:
414  ExportTrie:
415    TerminalSize:    0
416    NodeOffset:      0
417    Name:            ''
418    Flags:           0x0000000000000000
419    Address:         0x0000000000000000
420    Other:           0x0000000000000000
421    ImportName:      ''
422    Children:
423      - TerminalSize:    0
424        NodeOffset:      5
425        Name:            _
426        Flags:           0x0000000000000000
427        Address:         0x0000000000000000
428        Other:           0x0000000000000000
429        ImportName:      ''
430        Children:
431          - TerminalSize:    2
432            NodeOffset:      33
433            Name:            _mh_execute_header
434            Flags:           0x0000000000000000
435            Address:         0x0000000000000000
436            Other:           0x0000000000000000
437            ImportName:      ''
438          - TerminalSize:    4
439            NodeOffset:      37
440            Name:            main
441            Flags:           0x0000000000000000
442            Address:         0x0000000000007FA0
443            Other:           0x0000000000000000
444            ImportName:      ''
445  NameList:
446    - n_strx:          2
447      n_type:          0x0F
448      n_sect:          1
449      n_desc:          16
450      n_value:         4294967296
451    - n_strx:          22
452      n_type:          0x0F
453      n_sect:          1
454      n_desc:          0
455      n_value:         4294999968
456    - n_strx:          28
457      n_type:          0x01
458      n_sect:          0
459      n_desc:          256
460      n_value:         0
461  StringTable:
462    - ' '
463    - __mh_execute_header
464    - _main
465    - dyld_stub_binder
466    - ''
467    - ''
468    - ''
469...
470
471## Case 3: arm64_32 WatchOS binary.
472## This binary can be built on OSX as follows:
473## main.c: int main() { return 0; }
474## xcrun -sdk watchos clang -arch arm64_32 main.c -o main.exe
475--- !mach-o
476FileHeader:
477  magic:           0xFEEDFACE
478  cputype:         0x0200000C
479  cpusubtype:      0x00000001
480  filetype:        0x00000002
481  ncmds:           15
482  sizeofcmds:      684
483  flags:           0x00200085
484LoadCommands:
485  - cmd:             LC_SEGMENT
486    cmdsize:         56
487    segname:         __PAGEZERO
488    vmaddr:          0
489    vmsize:          16384
490    fileoff:         0
491    filesize:        0
492    maxprot:         0
493    initprot:        0
494    nsects:          0
495    flags:           0
496  - cmd:             LC_SEGMENT
497    cmdsize:         192
498    segname:         __TEXT
499    vmaddr:          16384
500    vmsize:          32768
501    fileoff:         0
502    filesize:        32768
503    maxprot:         5
504    initprot:        5
505    nsects:          2
506    flags:           0
507    Sections:
508      - sectname:        __text
509        segname:         __TEXT
510        addr:            0x000000000000BFA0
511        size:            24
512        offset:          0x00007FA0
513        align:           2
514        reloff:          0x00000000
515        nreloc:          0
516        flags:           0x80000400
517        reserved1:       0x00000000
518        reserved2:       0x00000000
519        reserved3:       0x00000000
520        content:         FF4300D108008052E80F00B9E00308AAFF430091C0035FD6
521      - sectname:        __unwind_info
522        segname:         __TEXT
523        addr:            0x000000000000BFB8
524        size:            72
525        offset:          0x00007FB8
526        align:           2
527        reloff:          0x00000000
528        nreloc:          0
529        flags:           0x00000000
530        reserved1:       0x00000000
531        reserved2:       0x00000000
532        reserved3:       0x00000000
533        content:         010000001C000000000000001C000000000000001C00000002000000A07F00003400000034000000B97F00000000000034000000030000000C000100100001000000000000100002
534  - cmd:             LC_SEGMENT
535    cmdsize:         56
536    segname:         __LINKEDIT
537    vmaddr:          49152
538    vmsize:          16384
539    fileoff:         32768
540    filesize:        132
541    maxprot:         1
542    initprot:        1
543    nsects:          0
544    flags:           0
545  - cmd:             LC_DYLD_INFO_ONLY
546    cmdsize:         48
547    rebase_off:      0
548    rebase_size:     0
549    bind_off:        0
550    bind_size:       0
551    weak_bind_off:   0
552    weak_bind_size:  0
553    lazy_bind_off:   0
554    lazy_bind_size:  0
555    export_off:      32768
556    export_size:     44
557  - cmd:             LC_SYMTAB
558    cmdsize:         24
559    symoff:          32816
560    nsyms:           3
561    stroff:          32852
562    strsize:         48
563  - cmd:             LC_DYSYMTAB
564    cmdsize:         80
565    ilocalsym:       0
566    nlocalsym:       0
567    iextdefsym:      0
568    nextdefsym:      2
569    iundefsym:       2
570    nundefsym:       1
571    tocoff:          0
572    ntoc:            0
573    modtaboff:       0
574    nmodtab:         0
575    extrefsymoff:    0
576    nextrefsyms:     0
577    indirectsymoff:  0
578    nindirectsyms:   0
579    extreloff:       0
580    nextrel:         0
581    locreloff:       0
582    nlocrel:         0
583  - cmd:             LC_LOAD_DYLINKER
584    cmdsize:         28
585    name:            12
586    Content:         '/usr/lib/dyld'
587    ZeroPadBytes:    3
588  - cmd:             LC_UUID
589    cmdsize:         24
590    uuid:            F33E5680-8F64-3402-8952-7FD251400D78
591  - cmd:             LC_BUILD_VERSION
592    cmdsize:         32
593    platform:        4
594    minos:           393472
595    sdk:             393472
596    ntools:          1
597    Tools:
598      - tool:            3
599        version:         34734080
600  - cmd:             LC_SOURCE_VERSION
601    cmdsize:         16
602    version:         0
603  - cmd:             LC_MAIN
604    cmdsize:         24
605    entryoff:        32672
606    stacksize:       0
607  - cmd:             LC_ENCRYPTION_INFO
608    cmdsize:         20
609    cryptoff:        16384
610    cryptsize:       16384
611    cryptid:         0
612  - cmd:             LC_LOAD_DYLIB
613    cmdsize:         52
614    dylib:
615      name:            24
616      timestamp:       2
617      current_version: 83951616
618      compatibility_version: 65536
619    Content:         '/usr/lib/libSystem.B.dylib'
620    ZeroPadBytes:    2
621  - cmd:             LC_FUNCTION_STARTS
622    cmdsize:         16
623    dataoff:         32812
624    datasize:        4
625  - cmd:             LC_DATA_IN_CODE
626    cmdsize:         16
627    dataoff:         32816
628    datasize:        0
629LinkEditData:
630  ExportTrie:
631    TerminalSize:    0
632    NodeOffset:      0
633    Name:            ''
634    Flags:           0x0000000000000000
635    Address:         0x0000000000000000
636    Other:           0x0000000000000000
637    ImportName:      ''
638    Children:
639      - TerminalSize:    0
640        NodeOffset:      5
641        Name:            _
642        Flags:           0x0000000000000000
643        Address:         0x0000000000000000
644        Other:           0x0000000000000000
645        ImportName:      ''
646        Children:
647          - TerminalSize:    2
648            NodeOffset:      33
649            Name:            _mh_execute_header
650            Flags:           0x0000000000000000
651            Address:         0x0000000000000000
652            Other:           0x0000000000000000
653            ImportName:      ''
654          - TerminalSize:    4
655            NodeOffset:      37
656            Name:            main
657            Flags:           0x0000000000000000
658            Address:         0x0000000000007FA0
659            Other:           0x0000000000000000
660            ImportName:      ''
661  NameList:
662    - n_strx:          2
663      n_type:          0x0F
664      n_sect:          1
665      n_desc:          16
666      n_value:         16384
667    - n_strx:          22
668      n_type:          0x0F
669      n_sect:          1
670      n_desc:          0
671      n_value:         49056
672    - n_strx:          28
673      n_type:          0x01
674      n_sect:          0
675      n_desc:          256
676      n_value:         0
677  StringTable:
678    - ' '
679    - __mh_execute_header
680    - _main
681    - dyld_stub_binder
682    - ''
683    - ''
684    - ''
685...
686
687## Case 4: x86_64 OSX binary.
688## This binary can be built on OSX as follows:
689## main.c: int main() { return 0; }
690## clang -arch x86_64 main.c -o main.exe
691--- !mach-o
692FileHeader:
693  magic:           0xFEEDFACF
694  cputype:         0x01000007
695  cpusubtype:      0x80000003
696  filetype:        0x00000002
697  ncmds:           14
698  sizeofcmds:      744
699  flags:           0x00200085
700  reserved:        0x00000000
701LoadCommands:
702  - cmd:             LC_SEGMENT_64
703    cmdsize:         72
704    segname:         __PAGEZERO
705    vmaddr:          0
706    vmsize:          4294967296
707    fileoff:         0
708    filesize:        0
709    maxprot:         0
710    initprot:        0
711    nsects:          0
712    flags:           0
713  - cmd:             LC_SEGMENT_64
714    cmdsize:         232
715    segname:         __TEXT
716    vmaddr:          4294967296
717    vmsize:          4096
718    fileoff:         0
719    filesize:        4096
720    maxprot:         5
721    initprot:        5
722    nsects:          2
723    flags:           0
724    Sections:
725      - sectname:        __text
726        segname:         __TEXT
727        addr:            0x0000000100000FA0
728        size:            15
729        offset:          0x00000FA0
730        align:           4
731        reloff:          0x00000000
732        nreloc:          0
733        flags:           0x80000400
734        reserved1:       0x00000000
735        reserved2:       0x00000000
736        reserved3:       0x00000000
737        content:         554889E531C0C745FC000000005DC3
738      - sectname:        __unwind_info
739        segname:         __TEXT
740        addr:            0x0000000100000FB0
741        size:            72
742        offset:          0x00000FB0
743        align:           2
744        reloff:          0x00000000
745        nreloc:          0
746        flags:           0x00000000
747        reserved1:       0x00000000
748        reserved2:       0x00000000
749        reserved3:       0x00000000
750        content:         010000001C000000000000001C000000000000001C00000002000000A00F00003400000034000000B00F00000000000034000000030000000C000100100001000000000000000001
751  - cmd:             LC_SEGMENT_64
752    cmdsize:         72
753    segname:         __LINKEDIT
754    vmaddr:          4294971392
755    vmsize:          4096
756    fileoff:         4096
757    filesize:        152
758    maxprot:         1
759    initprot:        1
760    nsects:          0
761    flags:           0
762  - cmd:             LC_DYLD_INFO_ONLY
763    cmdsize:         48
764    rebase_off:      0
765    rebase_size:     0
766    bind_off:        0
767    bind_size:       0
768    weak_bind_off:   0
769    weak_bind_size:  0
770    lazy_bind_off:   0
771    lazy_bind_size:  0
772    export_off:      4096
773    export_size:     48
774  - cmd:             LC_SYMTAB
775    cmdsize:         24
776    symoff:          4152
777    nsyms:           3
778    stroff:          4200
779    strsize:         48
780  - cmd:             LC_DYSYMTAB
781    cmdsize:         80
782    ilocalsym:       0
783    nlocalsym:       0
784    iextdefsym:      0
785    nextdefsym:      2
786    iundefsym:       2
787    nundefsym:       1
788    tocoff:          0
789    ntoc:            0
790    modtaboff:       0
791    nmodtab:         0
792    extrefsymoff:    0
793    nextrefsyms:     0
794    indirectsymoff:  0
795    nindirectsyms:   0
796    extreloff:       0
797    nextrel:         0
798    locreloff:       0
799    nlocrel:         0
800  - cmd:             LC_LOAD_DYLINKER
801    cmdsize:         32
802    name:            12
803    Content:         '/usr/lib/dyld'
804    ZeroPadBytes:    7
805  - cmd:             LC_UUID
806    cmdsize:         24
807    uuid:            D70F7C9D-410A-3567-83E2-4CA3F33585FF
808  - cmd:             LC_BUILD_VERSION
809    cmdsize:         32
810    platform:        1
811    minos:           658944
812    sdk:             658944
813    ntools:          1
814    Tools:
815      - tool:            3
816        version:         34734080
817  - cmd:             LC_SOURCE_VERSION
818    cmdsize:         16
819    version:         0
820  - cmd:             LC_MAIN
821    cmdsize:         24
822    entryoff:        4000
823    stacksize:       0
824  - cmd:             LC_LOAD_DYLIB
825    cmdsize:         56
826    dylib:
827      name:            24
828      timestamp:       2
829      current_version: 82115073
830      compatibility_version: 65536
831    Content:         '/usr/lib/libSystem.B.dylib'
832    ZeroPadBytes:    6
833  - cmd:             LC_FUNCTION_STARTS
834    cmdsize:         16
835    dataoff:         4144
836    datasize:        8
837  - cmd:             LC_DATA_IN_CODE
838    cmdsize:         16
839    dataoff:         4152
840    datasize:        0
841LinkEditData:
842  ExportTrie:
843    TerminalSize:    0
844    NodeOffset:      0
845    Name:            ''
846    Flags:           0x0000000000000000
847    Address:         0x0000000000000000
848    Other:           0x0000000000000000
849    ImportName:      ''
850    Children:
851      - TerminalSize:    0
852        NodeOffset:      5
853        Name:            _
854        Flags:           0x0000000000000000
855        Address:         0x0000000000000000
856        Other:           0x0000000000000000
857        ImportName:      ''
858        Children:
859          - TerminalSize:    2
860            NodeOffset:      33
861            Name:            _mh_execute_header
862            Flags:           0x0000000000000000
863            Address:         0x0000000000000000
864            Other:           0x0000000000000000
865            ImportName:      ''
866          - TerminalSize:    3
867            NodeOffset:      37
868            Name:            main
869            Flags:           0x0000000000000000
870            Address:         0x0000000000000FA0
871            Other:           0x0000000000000000
872            ImportName:      ''
873  NameList:
874    - n_strx:          2
875      n_type:          0x0F
876      n_sect:          1
877      n_desc:          16
878      n_value:         4294967296
879    - n_strx:          22
880      n_type:          0x0F
881      n_sect:          1
882      n_desc:          0
883      n_value:         4294971296
884    - n_strx:          28
885      n_type:          0x01
886      n_sect:          0
887      n_desc:          256
888      n_value:         0
889  StringTable:
890    - ' '
891    - __mh_execute_header
892    - _main
893    - dyld_stub_binder
894    - ''
895    - ''
896    - ''
897...
898