1 // RUN: llvm-objdump -p %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
2 // RUN: llvm-objdump -p %p/Inputs/hello.exe.macho-x86_64 \
3 // RUN: | FileCheck %s -check-prefix=EXE
4 // RUN: llvm-objdump -p %p/Inputs/dylibLoadKinds.macho-x86_64 \
5 // RUN: | FileCheck %s -check-prefix=LOAD
6 // RUN: llvm-objdump -p %p/Inputs/linkerOption.macho-x86_64 \
7 // RUN: | FileCheck %s -check-prefix=LD_OPT
8 // RUN: llvm-objdump -p %p/Inputs/dylibSubFramework.macho-x86_64 \
9 // RUN: | FileCheck %s -check-prefix=SUB_FRAME
10 // RUN: llvm-objdump -p %p/Inputs/dylibSubUmbrella.macho-x86_64 \
11 // RUN: | FileCheck %s -check-prefix=SUB_UMB
12 // RUN: llvm-objdump -p %p/Inputs/dylibSubLibrary.macho-x86_64 \
13 // RUN: | FileCheck %s -check-prefix=SUB_LIB
14 // RUN: llvm-objdump -p %p/Inputs/dylibSubClient.macho-x86_64 \
15 // RUN: | FileCheck %s -check-prefix=SUB_CLI
16 // RUN: llvm-objdump -p %p/Inputs/dylibRoutines.macho-x86_64 \
17 // RUN: | FileCheck %s -check-prefix=ROUTINE
18 // RUN: llvm-objdump -p %p/Inputs/exeThread.macho-x86_64 \
19 // RUN: | FileCheck %s -check-prefix=THREAD
22 CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
23 CHECK: MH_MAGIC_64 X86_64 ALL 0x00 OBJECT 3 496 SUBSECTIONS_VIA_SYMBOLS
25 CHECK: cmd LC_SEGMENT_64
28 CHECK: vmaddr 0x0000000000000000
29 CHECK: vmsize 0x00000000000000a8
37 CHECK: sectname __text
39 CHECK: addr 0x0000000000000000
40 CHECK: size 0x000000000000003b
46 CHECK: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
50 CHECK: sectname __cstring
52 CHECK: addr 0x000000000000003b
53 CHECK: size 0x000000000000000d
58 CHECK: type S_CSTRING_LITERALS
59 CHECK: attributes (none)
63 CHECK: sectname __compact_unwind
65 CHECK: addr 0x0000000000000048
66 CHECK: size 0x0000000000000020
72 CHECK: attributes DEBUG
76 CHECK: sectname __eh_frame
78 CHECK: addr 0x0000000000000068
79 CHECK: size 0x0000000000000040
84 CHECK: type S_COALESCED
85 CHECK: attributes NO_TOC STRIP_STATIC_SYMS LIVE_SUPPORT
96 CHECK: cmd LC_DYSYMTAB
108 CHECK: extrefsymoff 0
110 CHECK: indirectsymoff 0
111 CHECK: nindirectsyms 0
118 EXE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
119 EXE: MH_MAGIC_64 X86_64 ALL LIB64 EXECUTE 16 1296 NOUNDEFS DYLDLINK TWOLEVEL PIE
121 EXE: cmd LC_SEGMENT_64
123 EXE: segname __PAGEZERO
124 EXE: vmaddr 0x0000000000000000
125 EXE: vmsize 0x0000000100000000
133 EXE: cmd LC_SEGMENT_64
136 EXE: vmaddr 0x0000000100000000
137 EXE: vmsize 0x0000000000001000
147 EXE: addr 0x0000000100000f30
148 EXE: size 0x000000000000003b
154 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
158 EXE: sectname __stubs
160 EXE: addr 0x0000000100000f6c
161 EXE: size 0x0000000000000006
166 EXE: type S_SYMBOL_STUBS
167 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
168 EXE: reserved1 0 (index into indirect symbol table)
169 EXE: reserved2 6 (size of stubs)
171 EXE: sectname __stub_helper
173 EXE: addr 0x0000000100000f74
174 EXE: size 0x000000000000001a
180 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
184 EXE: sectname __cstring
186 EXE: addr 0x0000000100000f8e
187 EXE: size 0x000000000000000d
192 EXE: type S_CSTRING_LITERALS
193 EXE: attributes (none)
197 EXE: sectname __unwind_info
199 EXE: addr 0x0000000100000f9b
200 EXE: size 0x0000000000000048
206 EXE: attributes (none)
210 EXE: sectname __eh_frame
212 EXE: addr 0x0000000100000fe8
213 EXE: size 0x0000000000000018
219 EXE: attributes (none)
223 EXE: cmd LC_SEGMENT_64
226 EXE: vmaddr 0x0000000100001000
227 EXE: vmsize 0x0000000000001000
235 EXE: sectname __nl_symbol_ptr
237 EXE: addr 0x0000000100001000
238 EXE: size 0x0000000000000010
243 EXE: type S_NON_LAZY_SYMBOL_POINTERS
244 EXE: attributes (none)
245 EXE: reserved1 1 (index into indirect symbol table)
248 EXE: sectname __la_symbol_ptr
250 EXE: addr 0x0000000100001010
251 EXE: size 0x0000000000000008
256 EXE: type S_LAZY_SYMBOL_POINTERS
257 EXE: attributes (none)
258 EXE: reserved1 3 (index into indirect symbol table)
261 EXE: cmd LC_SEGMENT_64
263 EXE: segname __LINKEDIT
264 EXE: vmaddr 0x0000000100002000
265 EXE: vmsize 0x0000000000001000
273 EXE: cmd LC_DYLD_INFO_ONLY
280 EXE: weak_bind_size 0
281 EXE: lazy_bind_off 8224
282 EXE: lazy_bind_size 16
307 EXE: indirectsymoff 8424
314 EXE: cmd LC_LOAD_DYLINKER
316 EXE: name /usr/lib/dyld (offset 12)
320 EXE: uuid 65C2DD41-79B0-3B34-871B-8CB3446AB762
322 EXE: cmd LC_VERSION_MIN_MACOSX
327 EXE: cmd LC_SOURCE_VERSION
336 EXE: cmd LC_LOAD_DYLIB
338 EXE: name /usr/lib/libSystem.B.dylib (offset 24)
339 EXE: current version 1197.1.1
340 EXE: compatibility version 1.0.0
342 EXE: cmd LC_FUNCTION_STARTS
347 EXE: cmd LC_DATA_IN_CODE
352 EXE: cmd LC_DYLIB_CODE_SIGN_DRS
358 LOAD: Load command 10
359 LOAD: cmd LC_LOAD_DYLIB
361 LOAD: name /usr/lib/foo1.dylib (offset 24)
362 LOAD: current version 0.0.0
363 LOAD: compatibility version 0.0.0
364 LOAD: Load command 11
365 LOAD: cmd LC_LOAD_WEAK_DYLIB
367 LOAD: name /usr/lib/foo2.dylib (offset 24)
368 LOAD: current version 0.0.0
369 LOAD: compatibility version 0.0.0
370 LOAD: Load command 12
371 LOAD: cmd LC_REEXPORT_DYLIB
373 LOAD: name /usr/lib/foo3.dylib (offset 24)
374 LOAD: current version 0.0.0
375 LOAD: compatibility version 0.0.0
376 LOAD: Load command 13
377 LOAD: cmd LC_LAZY_LOAD_DYLIB
379 LOAD: name /usr/lib/foo4.dylib (offset 24)
380 LOAD: current version 0.0.0
381 LOAD: compatibility version 0.0.0
383 LD_OPT: Load command 4
384 LD_OPT: cmd LC_LINKER_OPTION
387 LD_OPT: string #1 -lc++
388 LD_OPT: Load command 5
389 LD_OPT: cmd LC_LINKER_OPTION
392 LD_OPT: string #1 -framework
393 LD_OPT: string #2 Foundation
395 SUB_FRAME: Load command 10
396 SUB_FRAME: cmd LC_SUB_FRAMEWORK
397 SUB_FRAME: cmdsize 16
398 SUB_FRAME: umbrella Bar (offset 12)
400 SUB_UMB: Load command 5
401 SUB_UMB: cmd LC_SUB_UMBRELLA
403 SUB_UMB: sub_umbrella Foo (offset 12)
405 SUB_LIB: Load command 5
406 SUB_LIB: cmd LC_SUB_LIBRARY
408 SUB_LIB: sub_library libfoo (offset 12)
410 SUB_CLI: Load command 10
411 SUB_CLI: cmd LC_SUB_CLIENT
413 SUB_CLI: client bar (offset 12)
415 ROUTINE: Load command 6
416 ROUTINE: cmd LC_ROUTINES_64
418 ROUTINE: init_address 0x0000000000000f80
419 ROUTINE: init_module 0
427 THREAD: Load command 10
428 THREAD: cmd LC_UNIXTHREAD
430 THREAD: flavor x86_THREAD_STATE64
431 THREAD: count x86_THREAD_STATE64_COUNT
432 THREAD: rax 0x0000000000000000 rbx 0x0000000000000000 rcx 0x0000000000000000
433 THREAD: rdx 0x0000000000000000 rdi 0x0000000000000000 rsi 0x0000000000000000
434 THREAD: rbp 0x0000000000000000 rsp 0x0000000000000000 r8 0x0000000000000000
435 THREAD: r9 0x0000000000000000 r10 0x0000000000000000 r11 0x0000000000000000
436 THREAD: r12 0x0000000000000000 r13 0x0000000000000000 r14 0x0000000000000000
437 THREAD: r15 0x0000000000000000 rip 0x0000000100000d00
438 THREAD: rflags 0x0000000000000000 cs 0x0000000000000000 fs 0x0000000000000000
439 THREAD: gs 0x0000000000000000