// RUN: llvm-objdump -p %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s // RUN: llvm-otool -lv %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s // RUN: llvm-objdump -p %p/Inputs/hello.exe.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=EXE // RUN: llvm-objdump -p %p/Inputs/dylibLoadKinds.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=LOAD // RUN: llvm-objdump -p %p/Inputs/linkerOption.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=LD_OPT // RUN: llvm-objdump -p %p/Inputs/dylibSubFramework.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=SUB_FRAME // RUN: llvm-objdump -p %p/Inputs/dylibSubUmbrella.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=SUB_UMB // RUN: llvm-objdump -p %p/Inputs/dylibSubLibrary.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=SUB_LIB // RUN: llvm-objdump -p %p/Inputs/dylibSubClient.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=SUB_CLI // RUN: llvm-objdump -p %p/Inputs/dylibRoutines.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=ROUTINE // RUN: llvm-objdump -p %p/Inputs/exeThread.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=THREAD // RUN: llvm-objdump --macho -p --arch i386 %p/Inputs/macho-universal.x86_64.i386 \ // RUN: | FileCheck %s -check-prefix=FATi386 // RUN: llvm-objdump -p --arch i386 %p/Inputs/macho-universal.x86_64.i386 \ // RUN: | FileCheck %s -check-prefix=FATi386 // RUN: llvm-objdump -p --non-verbose %p/Inputs/hello.obj.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=NON_VERBOSE // RUN: llvm-objdump -p %p/Inputs/codesig.macho-x86_64 \ // RUN: | FileCheck %s -check-prefix=CODESIG // RUN: llvm-objdump -p %p/Inputs/note.macho-x86 \ // RUN: | FileCheck %s -check-prefix=NOTE CHECK: Mach header CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags CHECK: MH_MAGIC_64 X86_64 ALL 0x00 OBJECT 3 496 SUBSECTIONS_VIA_SYMBOLS CHECK: Load command 0 CHECK: cmd LC_SEGMENT_64 CHECK: cmdsize 392 CHECK: segname CHECK: vmaddr 0x0000000000000000 CHECK: vmsize 0x00000000000000a8 CHECK: fileoff 528 CHECK: filesize 168 CHECK: maxprot rwx CHECK: initprot rwx CHECK: nsects 4 CHECK: flags (none) CHECK: Section CHECK: sectname __text CHECK: segname __TEXT CHECK: addr 0x0000000000000000 CHECK: size 0x000000000000003b CHECK: offset 528 CHECK: align 2^4 (16) CHECK: reloff 696 CHECK: nreloc 2 CHECK: type S_REGULAR CHECK: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS CHECK: reserved1 0 CHECK: reserved2 0 CHECK: Section CHECK: sectname __cstring CHECK: segname __TEXT CHECK: addr 0x000000000000003b CHECK: size 0x000000000000000d CHECK: offset 587 CHECK: align 2^0 (1) CHECK: reloff 0 CHECK: nreloc 0 CHECK: type S_CSTRING_LITERALS CHECK: attributes (none) CHECK: reserved1 0 CHECK: reserved2 0 CHECK: Section CHECK: sectname __compact_unwind CHECK: segname __LD CHECK: addr 0x0000000000000048 CHECK: size 0x0000000000000020 CHECK: offset 600 CHECK: align 2^3 (8) CHECK: reloff 712 CHECK: nreloc 1 CHECK: type S_REGULAR CHECK: attributes DEBUG CHECK: reserved1 0 CHECK: reserved2 0 CHECK: Section CHECK: sectname __eh_frame CHECK: segname __TEXT CHECK: addr 0x0000000000000068 CHECK: size 0x0000000000000040 CHECK: offset 632 CHECK: align 2^3 (8) CHECK: reloff 0 CHECK: nreloc 0 CHECK: type S_COALESCED CHECK: attributes NO_TOC STRIP_STATIC_SYMS LIVE_SUPPORT CHECK: reserved1 0 CHECK: reserved2 0 CHECK: Load command 1 CHECK: cmd LC_SYMTAB CHECK: cmdsize 24 CHECK: symoff 720 CHECK: nsyms 5 CHECK: stroff 800 CHECK: strsize 44 CHECK: Load command 2 CHECK: cmd LC_DYSYMTAB CHECK: cmdsize 80 CHECK: ilocalsym 0 CHECK: nlocalsym 2 CHECK: iextdefsym 2 CHECK: nextdefsym 2 CHECK: iundefsym 4 CHECK: nundefsym 1 CHECK: tocoff 0 CHECK: ntoc 0 CHECK: modtaboff 0 CHECK: nmodtab 0 CHECK: extrefsymoff 0 CHECK: nextrefsyms 0 CHECK: indirectsymoff 0 CHECK: nindirectsyms 0 CHECK: extreloff 0 CHECK: nextrel 0 CHECK: locreloff 0 CHECK: nlocrel 0 EXE: Mach header EXE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags EXE: MH_MAGIC_64 X86_64 ALL LIB64 EXECUTE 16 1296 NOUNDEFS DYLDLINK TWOLEVEL PIE EXE: Load command 0 EXE: cmd LC_SEGMENT_64 EXE: cmdsize 72 EXE: segname __PAGEZERO EXE: vmaddr 0x0000000000000000 EXE: vmsize 0x0000000100000000 EXE: fileoff 0 EXE: filesize 0 EXE: maxprot --- EXE: initprot --- EXE: nsects 0 EXE: flags (none) EXE: Load command 1 EXE: cmd LC_SEGMENT_64 EXE: cmdsize 552 EXE: segname __TEXT EXE: vmaddr 0x0000000100000000 EXE: vmsize 0x0000000000001000 EXE: fileoff 0 EXE: filesize 4096 EXE: maxprot rwx EXE: initprot r-x EXE: nsects 6 EXE: flags (none) EXE: Section EXE: sectname __text EXE: segname __TEXT EXE: addr 0x0000000100000f30 EXE: size 0x000000000000003b EXE: offset 3888 EXE: align 2^4 (16) EXE: reloff 0 EXE: nreloc 0 EXE: type S_REGULAR EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS EXE: reserved1 0 EXE: reserved2 0 EXE: Section EXE: sectname __stubs EXE: segname __TEXT EXE: addr 0x0000000100000f6c EXE: size 0x0000000000000006 EXE: offset 3948 EXE: align 2^1 (2) EXE: reloff 0 EXE: nreloc 0 EXE: type S_SYMBOL_STUBS EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS EXE: reserved1 0 (index into indirect symbol table) EXE: reserved2 6 (size of stubs) EXE: Section EXE: sectname __stub_helper EXE: segname __TEXT EXE: addr 0x0000000100000f74 EXE: size 0x000000000000001a EXE: offset 3956 EXE: align 2^2 (4) EXE: reloff 0 EXE: nreloc 0 EXE: type S_REGULAR EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS EXE: reserved1 0 EXE: reserved2 0 EXE: Section EXE: sectname __cstring EXE: segname __TEXT EXE: addr 0x0000000100000f8e EXE: size 0x000000000000000d EXE: offset 3982 EXE: align 2^0 (1) EXE: reloff 0 EXE: nreloc 0 EXE: type S_CSTRING_LITERALS EXE: attributes (none) EXE: reserved1 0 EXE: reserved2 0 EXE: Section EXE: sectname __unwind_info EXE: segname __TEXT EXE: addr 0x0000000100000f9b EXE: size 0x0000000000000048 EXE: offset 3995 EXE: align 2^0 (1) EXE: reloff 0 EXE: nreloc 0 EXE: type S_REGULAR EXE: attributes (none) EXE: reserved1 0 EXE: reserved2 0 EXE: Section EXE: sectname __eh_frame EXE: segname __TEXT EXE: addr 0x0000000100000fe8 EXE: size 0x0000000000000018 EXE: offset 4072 EXE: align 2^3 (8) EXE: reloff 0 EXE: nreloc 0 EXE: type S_REGULAR EXE: attributes (none) EXE: reserved1 0 EXE: reserved2 0 EXE: Load command 2 EXE: cmd LC_SEGMENT_64 EXE: cmdsize 232 EXE: segname __DATA EXE: vmaddr 0x0000000100001000 EXE: vmsize 0x0000000000001000 EXE: fileoff 4096 EXE: filesize 4096 EXE: maxprot rwx EXE: initprot rw- EXE: nsects 2 EXE: flags (none) EXE: Section EXE: sectname __nl_symbol_ptr EXE: segname __DATA EXE: addr 0x0000000100001000 EXE: size 0x0000000000000010 EXE: offset 4096 EXE: align 2^3 (8) EXE: reloff 0 EXE: nreloc 0 EXE: type S_NON_LAZY_SYMBOL_POINTERS EXE: attributes (none) EXE: reserved1 1 (index into indirect symbol table) EXE: reserved2 0 EXE: Section EXE: sectname __la_symbol_ptr EXE: segname __DATA EXE: addr 0x0000000100001010 EXE: size 0x0000000000000008 EXE: offset 4112 EXE: align 2^3 (8) EXE: reloff 0 EXE: nreloc 0 EXE: type S_LAZY_SYMBOL_POINTERS EXE: attributes (none) EXE: reserved1 3 (index into indirect symbol table) EXE: reserved2 0 EXE: Load command 3 EXE: cmd LC_SEGMENT_64 EXE: cmdsize 72 EXE: segname __LINKEDIT EXE: vmaddr 0x0000000100002000 EXE: vmsize 0x0000000000001000 EXE: fileoff 8192 EXE: filesize 304 EXE: maxprot rwx EXE: initprot r-- EXE: nsects 0 EXE: flags (none) EXE: Load command 4 EXE: cmd LC_DYLD_INFO_ONLY EXE: cmdsize 48 EXE: rebase_off 8192 EXE: rebase_size 8 EXE: bind_off 8200 EXE: bind_size 24 EXE: weak_bind_off 0 EXE: weak_bind_size 0 EXE: lazy_bind_off 8224 EXE: lazy_bind_size 16 EXE: export_off 8240 EXE: export_size 48 EXE: Load command 5 EXE: cmd LC_SYMTAB EXE: cmdsize 24 EXE: symoff 8360 EXE: nsyms 4 EXE: stroff 8440 EXE: strsize 56 EXE: Load command 6 EXE: cmd LC_DYSYMTAB EXE: cmdsize 80 EXE: ilocalsym 0 EXE: nlocalsym 0 EXE: iextdefsym 0 EXE: nextdefsym 2 EXE: iundefsym 2 EXE: nundefsym 2 EXE: tocoff 0 EXE: ntoc 0 EXE: modtaboff 0 EXE: nmodtab 0 EXE: extrefsymoff 0 EXE: nextrefsyms 0 EXE: indirectsymoff 8424 EXE: nindirectsyms 4 EXE: extreloff 0 EXE: nextrel 0 EXE: locreloff 0 EXE: nlocrel 0 EXE: Load command 7 EXE: cmd LC_LOAD_DYLINKER EXE: cmdsize 32 EXE: name /usr/lib/dyld (offset 12) EXE: Load command 8 EXE: cmd LC_UUID EXE: cmdsize 24 EXE: uuid 65C2DD41-79B0-3B34-871B-8CB3446AB762 EXE: Load command 9 EXE: cmd LC_VERSION_MIN_MACOSX EXE: cmdsize 16 EXE: version 10.9 EXE: sdk 10.9 EXE: Load command 10 EXE: cmd LC_SOURCE_VERSION EXE: cmdsize 16 EXE: version 0.0 EXE: Load command 11 EXE: cmd LC_MAIN EXE: cmdsize 24 EXE: entryoff 3888 EXE: stacksize 0 EXE: Load command 12 EXE: cmd LC_LOAD_DYLIB EXE: cmdsize 56 EXE: name /usr/lib/libSystem.B.dylib (offset 24) EXE: current version 1197.1.1 EXE: compatibility version 1.0.0 EXE: Load command 13 EXE: cmd LC_FUNCTION_STARTS EXE: cmdsize 16 EXE: dataoff 8288 EXE: datasize 8 EXE: Load command 14 EXE: cmd LC_DATA_IN_CODE EXE: cmdsize 16 EXE: dataoff 8296 EXE: datasize 0 EXE: Load command 15 EXE: cmd LC_DYLIB_CODE_SIGN_DRS EXE: cmdsize 16 EXE: dataoff 8296 EXE: datasize 64 LOAD: Load command 10 LOAD: cmd LC_LOAD_DYLIB LOAD: cmdsize 48 LOAD: name /usr/lib/foo1.dylib (offset 24) LOAD: current version 0.0.0 LOAD: compatibility version 0.0.0 LOAD: Load command 11 LOAD: cmd LC_LOAD_WEAK_DYLIB LOAD: cmdsize 48 LOAD: name /usr/lib/foo2.dylib (offset 24) LOAD: current version 0.0.0 LOAD: compatibility version 0.0.0 LOAD: Load command 12 LOAD: cmd LC_REEXPORT_DYLIB LOAD: cmdsize 48 LOAD: name /usr/lib/foo3.dylib (offset 24) LOAD: current version 0.0.0 LOAD: compatibility version 0.0.0 LOAD: Load command 13 LOAD: cmd LC_LAZY_LOAD_DYLIB LOAD: cmdsize 48 LOAD: name /usr/lib/foo4.dylib (offset 24) LOAD: current version 0.0.0 LOAD: compatibility version 0.0.0 LD_OPT: Load command 4 LD_OPT: cmd LC_LINKER_OPTION LD_OPT: cmdsize 24 LD_OPT: count 1 LD_OPT: string #1 -lc++ LD_OPT: Load command 5 LD_OPT: cmd LC_LINKER_OPTION LD_OPT: cmdsize 40 LD_OPT: count 2 LD_OPT: string #1 -framework LD_OPT: string #2 Foundation SUB_FRAME: Load command 10 SUB_FRAME: cmd LC_SUB_FRAMEWORK SUB_FRAME: cmdsize 16 SUB_FRAME: umbrella Bar (offset 12) SUB_UMB: Load command 5 SUB_UMB: cmd LC_SUB_UMBRELLA SUB_UMB: cmdsize 16 SUB_UMB: sub_umbrella Foo (offset 12) SUB_LIB: Load command 5 SUB_LIB: cmd LC_SUB_LIBRARY SUB_LIB: cmdsize 20 SUB_LIB: sub_library libfoo (offset 12) SUB_CLI: Load command 10 SUB_CLI: cmd LC_SUB_CLIENT SUB_CLI: cmdsize 16 SUB_CLI: client bar (offset 12) ROUTINE: Load command 6 ROUTINE: cmd LC_ROUTINES_64 ROUTINE: cmdsize 72 ROUTINE: init_address 0x0000000000000f80 ROUTINE: init_module 0 ROUTINE: reserved1 0 ROUTINE: reserved2 0 ROUTINE: reserved3 0 ROUTINE: reserved4 0 ROUTINE: reserved5 0 ROUTINE: reserved6 0 THREAD: Load command 10 THREAD: cmd LC_UNIXTHREAD THREAD: cmdsize 184 THREAD: flavor x86_THREAD_STATE64 THREAD: count x86_THREAD_STATE64_COUNT THREAD: rax 0x0000000000000000 rbx 0x0000000000000000 rcx 0x0000000000000000 THREAD: rdx 0x0000000000000000 rdi 0x0000000000000000 rsi 0x0000000000000000 THREAD: rbp 0x0000000000000000 rsp 0x0000000000000000 r8 0x0000000000000000 THREAD: r9 0x0000000000000000 r10 0x0000000000000000 r11 0x0000000000000000 THREAD: r12 0x0000000000000000 r13 0x0000000000000000 r14 0x0000000000000000 THREAD: r15 0x0000000000000000 rip 0x0000000100000d00 THREAD: rflags 0x0000000000000000 cs 0x0000000000000000 fs 0x0000000000000000 THREAD: gs 0x0000000000000000 FATi386: Mach header FATi386: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags FATi386: MH_MAGIC I386 ALL 0x00 EXECUTE 16 716 NOUNDEFS DYLDLINK TWOLEVEL PIE MH_NO_HEAP_EXECUTION NON_VERBOSE: Mach header NON_VERBOSE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags NON_VERBOSE: 0xfeedfacf 16777223 3 0x00 1 3 496 0x00002000 NON_VERBOSE: Load command 0 NON_VERBOSE: cmd LC_SEGMENT_64 NON_VERBOSE: cmdsize 392 NON_VERBOSE: segname NON_VERBOSE: vmaddr 0x0000000000000000 NON_VERBOSE: vmsize 0x00000000000000a8 NON_VERBOSE: fileoff 528 NON_VERBOSE: filesize 168 NON_VERBOSE: maxprot 0x00000007 NON_VERBOSE: initprot 0x00000007 NON_VERBOSE: nsects 4 NON_VERBOSE: flags 0x0 NON_VERBOSE: Section NON_VERBOSE: sectname __text NON_VERBOSE: segname __TEXT NON_VERBOSE: addr 0x0000000000000000 NON_VERBOSE: size 0x000000000000003b NON_VERBOSE: offset 528 NON_VERBOSE: align 2^4 (16) NON_VERBOSE: reloff 696 NON_VERBOSE: nreloc 2 NON_VERBOSE: flags 0x80000400 NON_VERBOSE: reserved1 0 NON_VERBOSE: reserved2 0 NON_VERBOSE: Section NON_VERBOSE: sectname __cstring NON_VERBOSE: segname __TEXT NON_VERBOSE: addr 0x000000000000003b NON_VERBOSE: size 0x000000000000000d NON_VERBOSE: offset 587 NON_VERBOSE: align 2^0 (1) NON_VERBOSE: reloff 0 NON_VERBOSE: nreloc 0 NON_VERBOSE: flags 0x00000002 NON_VERBOSE: reserved1 0 NON_VERBOSE: reserved2 0 NON_VERBOSE: Section NON_VERBOSE: sectname __compact_unwind NON_VERBOSE: segname __LD NON_VERBOSE: addr 0x0000000000000048 NON_VERBOSE: size 0x0000000000000020 NON_VERBOSE: offset 600 NON_VERBOSE: align 2^3 (8) NON_VERBOSE: reloff 712 NON_VERBOSE: nreloc 1 NON_VERBOSE: flags 0x02000000 NON_VERBOSE: reserved1 0 NON_VERBOSE: reserved2 0 NON_VERBOSE: Section NON_VERBOSE: sectname __eh_frame NON_VERBOSE: segname __TEXT NON_VERBOSE: addr 0x0000000000000068 NON_VERBOSE: size 0x0000000000000040 NON_VERBOSE: offset 632 NON_VERBOSE: align 2^3 (8) NON_VERBOSE: reloff 0 NON_VERBOSE: nreloc 0 NON_VERBOSE: flags 0x6800000b NON_VERBOSE: reserved1 0 NON_VERBOSE: reserved2 0 NON_VERBOSE: Load command 1 NON_VERBOSE: cmd LC_SYMTAB NON_VERBOSE: cmdsize 24 NON_VERBOSE: symoff 720 NON_VERBOSE: nsyms 5 NON_VERBOSE: stroff 800 NON_VERBOSE: strsize 44 NON_VERBOSE: Load command 2 NON_VERBOSE: cmd LC_DYSYMTAB NON_VERBOSE: cmdsize 80 NON_VERBOSE: ilocalsym 0 NON_VERBOSE: nlocalsym 2 NON_VERBOSE: iextdefsym 2 NON_VERBOSE: nextdefsym 2 NON_VERBOSE: iundefsym 4 NON_VERBOSE: nundefsym 1 NON_VERBOSE: tocoff 0 NON_VERBOSE: ntoc 0 NON_VERBOSE: modtaboff 0 NON_VERBOSE: nmodtab 0 NON_VERBOSE: extrefsymoff 0 NON_VERBOSE: nextrefsyms 0 NON_VERBOSE: indirectsymoff 0 NON_VERBOSE: nindirectsyms 0 NON_VERBOSE: extreloff 0 NON_VERBOSE: nextrel 0 NON_VERBOSE: locreloff 0 NON_VERBOSE: nlocrel 0 CODESIG: cmd LC_CODE_SIGNATURE CODESIG: cmdsize 16 CODESIG: dataoff 8496 CODESIG: datasize 64 NOTE: cmd LC_NOTE NOTE: cmdsize 40 NOTE: data_owner DATA OWNER NOTE: offset 68 NOTE: size 8