diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:44:32 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:44:32 +0000 |
commit | 5a5ac124e1efaf208671f01c46edb15f29ed2a0b (patch) | |
tree | a6140557876943cdd800ee997c9317283394b22c /test/tools/llvm-objdump | |
parent | f03b5bed27d0d2eafd68562ce14f8b5e3f1f0801 (diff) |
Notes
Diffstat (limited to 'test/tools/llvm-objdump')
39 files changed, 1530 insertions, 0 deletions
diff --git a/test/tools/llvm-objdump/AArch64/Inputs/link-opt-hints.macho-aarch64 b/test/tools/llvm-objdump/AArch64/Inputs/link-opt-hints.macho-aarch64 Binary files differnew file mode 100644 index 0000000000000..12d33fcdf7514 --- /dev/null +++ b/test/tools/llvm-objdump/AArch64/Inputs/link-opt-hints.macho-aarch64 diff --git a/test/tools/llvm-objdump/AArch64/Inputs/print-mrs.obj.macho-aarch64 b/test/tools/llvm-objdump/AArch64/Inputs/print-mrs.obj.macho-aarch64 Binary files differnew file mode 100644 index 0000000000000..06cb13d07dafc --- /dev/null +++ b/test/tools/llvm-objdump/AArch64/Inputs/print-mrs.obj.macho-aarch64 diff --git a/test/tools/llvm-objdump/AArch64/macho-link-opt-hints.test b/test/tools/llvm-objdump/AArch64/macho-link-opt-hints.test new file mode 100644 index 0000000000000..932bc4fa83800 --- /dev/null +++ b/test/tools/llvm-objdump/AArch64/macho-link-opt-hints.test @@ -0,0 +1,11 @@ +RUN: llvm-objdump -m -link-opt-hints %p/Inputs/link-opt-hints.macho-aarch64 | FileCheck %s + +CHECK: Linker optimiztion hints (8 total bytes) +CHECK: identifier 8 AdrpLdrGot +CHECK: narguments 2 +CHECK: value 0x18 +CHECK: value 0x1c +CHECK: identifier 7 AdrpAdd +CHECK: narguments 2 +CHECK: value 0x6c +CHECK: value 0x70 diff --git a/test/tools/llvm-objdump/AArch64/macho-print-mrs.test b/test/tools/llvm-objdump/AArch64/macho-print-mrs.test new file mode 100644 index 0000000000000..cc1d14faf8d33 --- /dev/null +++ b/test/tools/llvm-objdump/AArch64/macho-print-mrs.test @@ -0,0 +1,3 @@ +RUN: llvm-objdump -d -m -no-show-raw-insn %p/Inputs/print-mrs.obj.macho-aarch64 | FileCheck %s + +CHECK: 0: mrs x0, S3_7_C15_C2_0 diff --git a/test/tools/llvm-objdump/ARM/Inputs/data-in-code.macho-arm b/test/tools/llvm-objdump/ARM/Inputs/data-in-code.macho-arm Binary files differnew file mode 100644 index 0000000000000..e826f29a233a4 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/Inputs/data-in-code.macho-arm diff --git a/test/tools/llvm-objdump/ARM/macho-data-in-code.test b/test/tools/llvm-objdump/ARM/macho-data-in-code.test new file mode 100644 index 0000000000000..c7a6da1d9504b --- /dev/null +++ b/test/tools/llvm-objdump/ARM/macho-data-in-code.test @@ -0,0 +1,16 @@ +RUN: llvm-objdump -m -data-in-code %p/Inputs/data-in-code.macho-arm | FileCheck %s +RUN: llvm-objdump -m -data-in-code -non-verbose %p/Inputs/data-in-code.macho-arm | FileCheck %s -check-prefix=NON_VERBOSE + +CHECK: Data in code table (4 entries) +CHECK: offset length kind +CHECK: 0x00000000 4 DATA +CHECK: 0x00000004 4 JUMP_TABLE32 +CHECK: 0x00000008 2 JUMP_TABLE16 +CHECK: 0x0000000a 1 JUMP_TABLE8 + +NON_VERBOSE: Data in code table (4 entries) +NON_VERBOSE: offset length kind +NON_VERBOSE: 0x00000000 4 0x0001 +NON_VERBOSE: 0x00000004 4 0x0004 +NON_VERBOSE: 0x00000008 2 0x0003 +NON_VERBOSE: 0x0000000a 1 0x0002 diff --git a/test/tools/llvm-objdump/Inputs/common-symbol-elf b/test/tools/llvm-objdump/Inputs/common-symbol-elf Binary files differnew file mode 100644 index 0000000000000..9609edb041fe9 --- /dev/null +++ b/test/tools/llvm-objdump/Inputs/common-symbol-elf diff --git a/test/tools/llvm-objdump/Inputs/proc-specific-section-elf b/test/tools/llvm-objdump/Inputs/proc-specific-section-elf Binary files differnew file mode 100644 index 0000000000000..7c3d613cb87a2 --- /dev/null +++ b/test/tools/llvm-objdump/Inputs/proc-specific-section-elf diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.exe.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.exe.macho-i386 Binary files differnew file mode 100755 index 0000000000000..72b7ea83011a5 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.exe.macho-i386 diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.obj.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.obj.macho-i386 Binary files differnew file mode 100644 index 0000000000000..7f62ad1daeab8 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.obj.macho-i386 diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.exe.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.exe.macho-i386 Binary files differnew file mode 100755 index 0000000000000..b44c7dc58731f --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.exe.macho-i386 diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.obj.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.obj.macho-i386 Binary files differnew file mode 100644 index 0000000000000..51449643fcdd6 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.obj.macho-i386 diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.exe.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.exe.macho-x86_64 Binary files differnew file mode 100755 index 0000000000000..5cee0773604a4 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.exe.macho-x86_64 diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.macho-x86_64 Binary files differnew file mode 100644 index 0000000000000..5734780a1643a --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.macho-x86_64 diff --git a/test/tools/llvm-objdump/X86/Inputs/dylibModInit.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/dylibModInit.macho-x86_64 Binary files differnew file mode 100755 index 0000000000000..a39424aab3121 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/dylibModInit.macho-x86_64 diff --git a/test/tools/llvm-objdump/X86/macho-archive-headers.test b/test/tools/llvm-objdump/X86/macho-archive-headers.test new file mode 100644 index 0000000000000..1253b46529b9b --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-archive-headers.test @@ -0,0 +1,28 @@ +RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -macho -archive-headers -arch all \ +RUN: | FileCheck %s +RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -macho -archive-headers -arch all -archive-member-offsets \ +RUN: | FileCheck %s -check-prefix=OFFSETS +RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -macho -archive-headers -arch all -non-verbose \ +RUN: | FileCheck %s -check-prefix=NON-VERBOSE + +# Note the date as printed by ctime(3) is time zone dependent and not checked. +CHECK: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture x86_64) +CHECK: -rw-r--r--124/11 44 {{.*}} __.SYMDEF SORTED +CHECK: -rw-r--r--124/0 860 {{.*}} hello.o +CHECK: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture i386) +CHECK: -rw-r--r--124/11 60 {{.*}} __.SYMDEF SORTED +CHECK: -rw-r--r--124/0 388 {{.*}} foo.o + +OFFSETS: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture x86_64) +OFFSETS: 8 -rw-r--r--124/11 44 {{.*}} __.SYMDEF SORTED +OFFSETS: 112 -rw-r--r--124/0 860 {{.*}} hello.o +OFFSETS: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture i386) +OFFSETS: 8 -rw-r--r--124/11 60 {{.*}} __.SYMDEF SORTED +OFFSETS: 128 -rw-r--r--124/0 388 {{.*}} foo.o + +NON-VERBOSE: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture x86_64) +NON-VERBOSE: 0100644 124/11 44 1399572709 #1/20 +NON-VERBOSE: 0100644 124/0 860 1399501499 #1/12 +NON-VERBOSE: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture i386) +NON-VERBOSE: 0100644 124/11 60 1399572709 #1/20 +NON-VERBOSE: 0100644 124/0 388 1399572697 #1/12 diff --git a/test/tools/llvm-objdump/X86/macho-cstring-dump.test b/test/tools/llvm-objdump/X86/macho-cstring-dump.test new file mode 100644 index 0000000000000..0e19f51d6a63a --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-cstring-dump.test @@ -0,0 +1,13 @@ +RUN: llvm-objdump -m -section __TEXT,__cstring %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s +RUN: llvm-objdump -m -section __TEXT,__cstring -no-leading-addr %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NO_ADDR +RUN: llvm-objdump -m -section __TEXT,__cstring -non-verbose %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NON_VERBOSE + +CHECK: Contents of (__TEXT,__cstring) section +CHECK: 000000000000003b Hello world\n + +NO_ADDR: Contents of (__TEXT,__cstring) section +NO_ADDR: Hello world\n +NO_ADDR-NOT: 000000000000003b + +NON_VERBOSE: Contents of (__TEXT,__cstring) section +NON_VERBOSE: 000000000000003b 48 65 6c 6c 6f 20 77 6f 72 6c 64 0a 00 diff --git a/test/tools/llvm-objdump/X86/macho-dis-no-leading-addr.test b/test/tools/llvm-objdump/X86/macho-dis-no-leading-addr.test new file mode 100644 index 0000000000000..df4618dc4681e --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-dis-no-leading-addr.test @@ -0,0 +1,24 @@ +# RUN: llvm-objdump -m -d %p/Inputs/hello.obj.macho-x86_64 -no-show-raw-insn -print-imm-hex -no-leading-addr | FileCheck %s + +# CHECK: (__TEXT,__text) section +# CHECK: _main: +# CHECK: pushq %rbp +# CHECK: movq %rsp, %rbp +# CHECK: subq $0x20, %rsp +# CHECK: leaq L_.str(%rip), %rax ## literal pool for: "Hello world\n" +# CHECK: movl $_main, -0x4(%rbp) +# CHECK: movl %edi, -0x8(%rbp) +# CHECK: movq %rsi, -0x10(%rbp) +# CHECK: movq %rdx, -0x18(%rbp) +# CHECK: movq %rax, %rdi +# CHECK: movb $0x0, %al +# CHECK: callq _printf +# CHECK: movl $_main, %ecx +# CHECK: movl %eax, -0x1c(%rbp) +# CHECK: movl %ecx, %eax +# CHECK: addq $0x20, %rsp +# CHECK: popq %rbp +# CHECK: retq + +# CHECK-NOT: 0: +# CHECK-NOT: 0000000000000000 diff --git a/test/tools/llvm-objdump/X86/macho-dis-symname.test b/test/tools/llvm-objdump/X86/macho-dis-symname.test new file mode 100644 index 0000000000000..39d16ecba6f80 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-dis-symname.test @@ -0,0 +1,19 @@ +# RUN: llvm-objdump -m -d %p/Inputs/exeThread.macho-x86_64 -dis-symname start -no-show-raw-insn -full-leading-addr -print-imm-hex | FileCheck %s + +# CHECK: (__TEXT,__text) section +# CHECK: start: +# CHECK: 0000000100000d00 pushq $0x0 +# CHECK: 0000000100000d02 movq %rsp, %rbp +# CHECK: 0000000100000d05 andq $-0x10, %rsp +# CHECK: 0000000100000d09 movq 0x8(%rbp), %rdi +# CHECK: 0000000100000d0d leaq 0x10(%rbp), %rsi +# CHECK: 0000000100000d11 movl %edi, %edx +# CHECK: 0000000100000d13 addl $0x1, %edx +# CHECK: 0000000100000d16 shll $0x3, %edx +# CHECK: 0000000100000d19 addq %rsi, %rdx +# CHECK: 0000000100000d1c callq __start +# CHECK: 0000000100000d21 hlt + +# CHECK-NOT: __start: +# CHECK-NOT: 0000000100000d22 +# CHECK-NOT: _main: diff --git a/test/tools/llvm-objdump/X86/macho-dylib.test b/test/tools/llvm-objdump/X86/macho-dylib.test new file mode 100644 index 0000000000000..0e31b8b930e65 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-dylib.test @@ -0,0 +1,6 @@ +RUN: llvm-objdump -m -dylibs-used %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s -check-prefix=USED +RUN: llvm-objdump -m -dylib-id %p/Inputs/dylibLoadKinds.macho-x86_64 | FileCheck %s -check-prefix=ID + +USED: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1) + +ID: /usr/lib/foo.dylib diff --git a/test/tools/llvm-objdump/X86/macho-indirect-symbols.test b/test/tools/llvm-objdump/X86/macho-indirect-symbols.test new file mode 100644 index 0000000000000..fdc465ad54258 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-indirect-symbols.test @@ -0,0 +1,24 @@ +RUN: llvm-objdump -macho -indirect-symbols %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s +RUN: llvm-objdump -macho -indirect-symbols -non-verbose %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s -check-prefix=NON_VERBOSE + +CHECK: Indirect symbols for (__TEXT,__stubs) 1 entries +CHECK: address index name +CHECK: 0x0000000100000f6c 2 _printf +CHECK: Indirect symbols for (__DATA,__nl_symbol_ptr) 2 entries +CHECK: address index name +CHECK: 0x0000000100001000 3 dyld_stub_binder +CHECK: 0x0000000100001008 ABSOLUTE +CHECK: Indirect symbols for (__DATA,__la_symbol_ptr) 1 entries +CHECK: address index name +CHECK: 0x0000000100001010 2 _printf + +NON_VERBOSE: Indirect symbols for (__TEXT,__stubs) 1 entries +NON_VERBOSE: address index +NON_VERBOSE: 0x0000000100000f6c 2 +NON_VERBOSE: Indirect symbols for (__DATA,__nl_symbol_ptr) 2 entries +NON_VERBOSE: address index +NON_VERBOSE: 0x0000000100001000 3 +NON_VERBOSE: 0x0000000100001008 ABSOLUTE +NON_VERBOSE: Indirect symbols for (__DATA,__la_symbol_ptr) 1 entries +NON_VERBOSE: address index +NON_VERBOSE: 0x0000000100001010 2 diff --git a/test/tools/llvm-objdump/X86/macho-info-plist.test b/test/tools/llvm-objdump/X86/macho-info-plist.test new file mode 100644 index 0000000000000..bee1952ce9b82 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-info-plist.test @@ -0,0 +1,7 @@ +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -info-plist - | FileCheck %s + +.section __TEXT, __info_plist +.asciz "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + +# CHECK: Contents of (__TEXT,__info_plist) section +# CHECK: <?xml version="1.0" encoding="UTF-8"?> diff --git a/test/tools/llvm-objdump/X86/macho-literal-pointers-i386.test b/test/tools/llvm-objdump/X86/macho-literal-pointers-i386.test new file mode 100644 index 0000000000000..62ed607c8ee54 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-literal-pointers-i386.test @@ -0,0 +1,39 @@ +# RUN: llvm-mc < %s -triple i386-apple-darwin -filetype=obj | llvm-objdump -m -section __DATA,__litp - | FileCheck %s +# RUN: llvm-mc < %s -triple i386-apple-darwin -filetype=obj | llvm-objdump -m -section __DATA,__litp -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE + +.cstring +L1: .asciz "Hello world\n" + +.literal4 +.align 2 +L2: .float 4.0 + +.literal8 +.align 3 +L3: .double 8.0 + +.literal16 +.align 4 +L4: .long 0x10000016, 0x20000016, 0x30000016, 0x40000016 + +.const +L5: .asciz "const non-literal string" + +.section __DATA,__litp, literal_pointers +.align 2 +.long L1 +.long L2 +.long L3 +.long L4 +.long L5 + +# CHECK: Contents of (__DATA,__litp) section +# CHECK: 0000004c __TEXT:__cstring:Hello world\n +# CHECK: 00000050 __TEXT:__literal4:0x40800000 +# CHECK: 00000054 __TEXT:__literal8:0x00000000 0x40200000 +# CHECK: 00000058 __TEXT:__literal16:0x10000016 0x20000016 0x30000016 0x40000016 +# CHECK: 0000005c 0x30 (not in a literal section) + +# NON-VERBOSE: Contents of (__DATA,__litp) section +# NON-VERBOSE: 0000004c 00 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 +# NON-VERBOSE: 0000005c 30 00 00 00 diff --git a/test/tools/llvm-objdump/X86/macho-literal-pointers-x86_64.test b/test/tools/llvm-objdump/X86/macho-literal-pointers-x86_64.test new file mode 100644 index 0000000000000..f1912e8861cbe --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-literal-pointers-x86_64.test @@ -0,0 +1,40 @@ +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __DATA,__litp - | FileCheck %s +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __DATA,__litp -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE + +.cstring +L1: .asciz "Hello world\n" + +.literal4 +.align 2 +L2: .float 4.0 + +.literal8 +.align 3 +L3: .double 8.0 + +.literal16 +.align 4 +L4: .long 0x10000016, 0x20000016, 0x30000016, 0x40000016 + +.const +L5: .asciz "const non-literal string" + +.section __DATA,__litp, literal_pointers +.align 3 +.quad L1 +.quad L2 +.quad L3 +.quad L4 +.quad L5 + +# CHECK: Contents of (__DATA,__litp) section +# CHECK: 0000000000000050 __TEXT:__cstring:Hello world\n +# CHECK: 0000000000000058 __TEXT:__literal4:0x40800000 +# CHECK: 0000000000000060 __TEXT:__literal8:0x00000000 0x40200000 +# CHECK: 0000000000000068 __TEXT:__literal16:0x10000016 0x20000016 0x30000016 0x40000016 +# CHECK: 0000000000000070 0x30 (not in a literal section) + +# NON-VERBOSE: Contents of (__DATA,__litp) section +# NON-VERBOSE: 0000000000000050 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 +# NON-VERBOSE: 0000000000000060 18 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 +# NON-VERBOSE: 0000000000000070 30 00 00 00 00 00 00 00 diff --git a/test/tools/llvm-objdump/X86/macho-literals.test b/test/tools/llvm-objdump/X86/macho-literals.test new file mode 100644 index 0000000000000..d93ae679f348b --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-literals.test @@ -0,0 +1,63 @@ +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal4 - | FileCheck %s -check-prefix=CHECK-LIT4 +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal4 -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE-LIT4 +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal8 - | FileCheck %s -check-prefix=CHECK-LIT8 +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal8 -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE-LIT8 +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal16 - | FileCheck %s -check-prefix=CHECK-LIT16 +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal16 -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE-LIT16 + +.literal4 +.float 2.5 +.float 8.25 +.long 0x7f800000 +.long 0xff800000 +.long 0x7fc00000 +.long 0x7f800001 + +# CHECK-LIT4: Contents of (__TEXT,__literal4) section +# CHECK-LIT4: 0000000000000000 0x40200000 +# CHECK-LIT4: 0000000000000004 0x41040000 +# CHECK-LIT4: 0000000000000008 0x7f800000 +# CHECK-LIT4: 000000000000000c 0xff800000 +# CHECK-LIT4: 0000000000000010 0x7fc00000 +# CHECK-LIT4: 0000000000000014 0x7f800001 + +# NON-VERBOSE-LIT4: Contents of (__TEXT,__literal4) section +# NON-VERBOSE-LIT4: 0000000000000000 00 00 20 40 00 00 04 41 00 00 80 7f 00 00 80 ff +# NON-VERBOSE-LIT4: 0000000000000010 00 00 c0 7f 01 00 80 7f + +.literal8 +.double 2.5 +.double 8.25 +.long 0 +.long 0x7ff00000 +.long 0 +.long 0xfff00000 +.long 0 +.long 0x7ff80000 +.long 1 +.long 0x7ff00000 + +# CHECK-LIT8: Contents of (__TEXT,__literal8) section +# CHECK-LIT8: 0000000000000018 0x00000000 0x40040000 +# CHECK-LIT8: 0000000000000020 0x00000000 0x40208000 +# CHECK-LIT8: 0000000000000028 0x00000000 0x7ff00000 +# CHECK-LIT8: 0000000000000030 0x00000000 0xfff00000 +# CHECK-LIT8: 0000000000000038 0x00000000 0x7ff80000 +# CHECK-LIT8: 0000000000000040 0x00000001 0x7ff00000 + +# NON-VERBOSE-LIT8: Contents of (__TEXT,__literal8) section +# NON-VERBOSE-LIT8: 0000000000000018 00 00 00 00 00 00 04 40 00 00 00 00 00 80 20 40 +# NON-VERBOSE-LIT8: 0000000000000028 00 00 00 00 00 00 f0 7f 00 00 00 00 00 00 f0 ff +# NON-VERBOSE-LIT8: 0000000000000038 00 00 00 00 00 00 f8 7f 01 00 00 00 00 00 f0 7f + +.literal16 +.long 1 +.long 2 +.long 3 +.long 4 + +# CHECK-LIT16: Contents of (__TEXT,__literal16) section +# CHECK-LIT16: 0000000000000050 0x00000001 0x00000002 0x00000003 0x00000004 + +# NON-VERBOSE-LIT16: Contents of (__TEXT,__literal16) section +# NON-VERBOSE-LIT16: 0000000000000050 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 diff --git a/test/tools/llvm-objdump/X86/macho-nontext-disasm.test b/test/tools/llvm-objdump/X86/macho-nontext-disasm.test new file mode 100644 index 0000000000000..27b7bb441520f --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-nontext-disasm.test @@ -0,0 +1,9 @@ +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __FOO,__bar -full-leading-addr -print-imm-hex -no-show-raw-insn - | FileCheck %s + +.section __FOO, __bar +_foo: + nop + +# CHECK: Contents of (__FOO,__bar) section +# CHECK: _foo: +# CHECK: 0000000000000000 nop diff --git a/test/tools/llvm-objdump/X86/macho-objc-meta-data.test b/test/tools/llvm-objdump/X86/macho-objc-meta-data.test new file mode 100644 index 0000000000000..f4abf6cdb49e7 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-objc-meta-data.test @@ -0,0 +1,1039 @@ +# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.64bit.exe.macho-x86_64 | FileCheck %s -check-prefix=OBJC2_64BIT_EXE +# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.64bit.obj.macho-x86_64 | FileCheck %s -check-prefix=OBJC2_64BIT_OBJ +# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.32bit.exe.macho-i386 | FileCheck %s -check-prefix=OBJC2_32BIT_EXE +# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.32bit.obj.macho-i386 | FileCheck %s -check-prefix=OBJC2_32BIT_OBJ +# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc1.32bit.exe.macho-i386 | FileCheck %s -check-prefix=OBJC1_32BIT_EXE +# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc1.32bit.obj.macho-i386 | FileCheck %s -check-prefix=OBJC1_32BIT_OBJ +# RUN: llvm-objdump -m -section __OBJC,__protocol %p/Inputs/Objc1.32bit.exe.macho-i386 | FileCheck %s -check-prefix=PROTOCOL + +OBJC2_64BIT_EXE: Contents of (__DATA,__objc_classlist) section +OBJC2_64BIT_EXE: 0000000100002028 0x1000029f0 +OBJC2_64BIT_EXE: isa 0x100002a18 +OBJC2_64BIT_EXE: superclass 0x0 +OBJC2_64BIT_EXE: cache 0x0 +OBJC2_64BIT_EXE: vtable 0x0 +OBJC2_64BIT_EXE: data 0x1000020d0 (struct class_ro_t *) +OBJC2_64BIT_EXE: flags 0x80 +OBJC2_64BIT_EXE: instanceStart 100 +OBJC2_64BIT_EXE: instanceSize 100 +OBJC2_64BIT_EXE: reserved 0x0 +OBJC2_64BIT_EXE: ivarLayout 0x0 +OBJC2_64BIT_EXE: name 0x100001b0e ViewController +OBJC2_64BIT_EXE: baseMethods 0x100002098 (struct method_list_t *) +OBJC2_64BIT_EXE: entsize 24 +OBJC2_64BIT_EXE: count 2 +OBJC2_64BIT_EXE: name 0x1000014ee viewDidLoad +OBJC2_64BIT_EXE: types 0x100001b48 v16@0:8 +OBJC2_64BIT_EXE: imp 0x100001350 +OBJC2_64BIT_EXE: name 0x1000014fa setRepresentedObject: +OBJC2_64BIT_EXE: types 0x100001b50 v24@0:8@16 +OBJC2_64BIT_EXE: imp 0x100001390 +OBJC2_64BIT_EXE: baseProtocols 0x0 +OBJC2_64BIT_EXE: ivars 0x0 +OBJC2_64BIT_EXE: weakIvarLayout 0x0 +OBJC2_64BIT_EXE: baseProperties 0x0 +OBJC2_64BIT_EXE: Meta Class +OBJC2_64BIT_EXE: isa 0x0 +OBJC2_64BIT_EXE: superclass 0x0 +OBJC2_64BIT_EXE: cache 0x0 +OBJC2_64BIT_EXE: vtable 0x0 +OBJC2_64BIT_EXE: data 0x100002050 (struct class_ro_t *) +OBJC2_64BIT_EXE: flags 0x81 RO_META +OBJC2_64BIT_EXE: instanceStart 40 +OBJC2_64BIT_EXE: instanceSize 40 +OBJC2_64BIT_EXE: reserved 0x0 +OBJC2_64BIT_EXE: ivarLayout 0x0 +OBJC2_64BIT_EXE: name 0x100001b0e ViewController +OBJC2_64BIT_EXE: baseMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_EXE: baseProtocols 0x0 +OBJC2_64BIT_EXE: ivars 0x0 +OBJC2_64BIT_EXE: weakIvarLayout 0x0 +OBJC2_64BIT_EXE: baseProperties 0x0 +OBJC2_64BIT_EXE: 0000000100002030 0x100002a68 +OBJC2_64BIT_EXE: isa 0x100002a40 +OBJC2_64BIT_EXE: superclass 0x0 +OBJC2_64BIT_EXE: cache 0x0 +OBJC2_64BIT_EXE: vtable 0x0 +OBJC2_64BIT_EXE: data 0x100002990 (struct class_ro_t *) +OBJC2_64BIT_EXE: flags 0x80 +OBJC2_64BIT_EXE: instanceStart 8 +OBJC2_64BIT_EXE: instanceSize 8 +OBJC2_64BIT_EXE: reserved 0x0 +OBJC2_64BIT_EXE: ivarLayout 0x0 +OBJC2_64BIT_EXE: name 0x100001b1d AppDelegate +OBJC2_64BIT_EXE: baseMethods 0x100002910 (struct method_list_t *) +OBJC2_64BIT_EXE: entsize 24 +OBJC2_64BIT_EXE: count 2 +OBJC2_64BIT_EXE: name 0x100001885 applicationDidFinishLaunching: +OBJC2_64BIT_EXE: types 0x100001b50 v24@0:8@16 +OBJC2_64BIT_EXE: imp 0x100001430 +OBJC2_64BIT_EXE: name 0x100001999 applicationWillTerminate: +OBJC2_64BIT_EXE: types 0x100001b50 v24@0:8@16 +OBJC2_64BIT_EXE: imp 0x100001470 +OBJC2_64BIT_EXE: baseProtocols 0x1000028b0 +OBJC2_64BIT_EXE: count 1 +OBJC2_64BIT_EXE: list[0] 0x100002ae0 (struct protocol_t *) +OBJC2_64BIT_EXE: isa 0x0 +OBJC2_64BIT_EXE: name 0x100001b29 NSApplicationDelegate +OBJC2_64BIT_EXE: protocols 0x1000023f0 +OBJC2_64BIT_EXE: instanceMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_EXE: classMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_EXE: optionalInstanceMethods 0x100002408 +OBJC2_64BIT_EXE: optionalClassMethods 0x0 +OBJC2_64BIT_EXE: instanceProperties 0x0 +OBJC2_64BIT_EXE: ivars 0x0 +OBJC2_64BIT_EXE: weakIvarLayout 0x0 +OBJC2_64BIT_EXE: baseProperties 0x100002948 +OBJC2_64BIT_EXE: entsize 16 +OBJC2_64BIT_EXE: count 4 +OBJC2_64BIT_EXE: name 0x100001f25 hash +OBJC2_64BIT_EXE: attributes 0x100001f2a TQ,R +OBJC2_64BIT_EXE: name 0x100001f2f superclass +OBJC2_64BIT_EXE: attributes 0x100001f3a T#,R +OBJC2_64BIT_EXE: name 0x100001f3f description +OBJC2_64BIT_EXE: attributes 0x100001f4b T@"NSString",R,C +OBJC2_64BIT_EXE: name 0x100001f5c debugDescription +OBJC2_64BIT_EXE: attributes 0x100001f4b T@"NSString",R,C +OBJC2_64BIT_EXE: Meta Class +OBJC2_64BIT_EXE: isa 0x0 +OBJC2_64BIT_EXE: superclass 0x0 +OBJC2_64BIT_EXE: cache 0x0 +OBJC2_64BIT_EXE: vtable 0x0 +OBJC2_64BIT_EXE: data 0x1000028c8 (struct class_ro_t *) +OBJC2_64BIT_EXE: flags 0x81 RO_META +OBJC2_64BIT_EXE: instanceStart 40 +OBJC2_64BIT_EXE: instanceSize 40 +OBJC2_64BIT_EXE: reserved 0x0 +OBJC2_64BIT_EXE: ivarLayout 0x0 +OBJC2_64BIT_EXE: name 0x100001b1d AppDelegate +OBJC2_64BIT_EXE: baseMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_EXE: baseProtocols 0x1000028b0 +OBJC2_64BIT_EXE: count 1 +OBJC2_64BIT_EXE: list[0] 0x100002ae0 (struct protocol_t *) +OBJC2_64BIT_EXE: isa 0x0 +OBJC2_64BIT_EXE: name 0x100001b29 NSApplicationDelegate +OBJC2_64BIT_EXE: protocols 0x1000023f0 +OBJC2_64BIT_EXE: instanceMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_EXE: classMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_EXE: optionalInstanceMethods 0x100002408 +OBJC2_64BIT_EXE: optionalClassMethods 0x0 +OBJC2_64BIT_EXE: instanceProperties 0x0 +OBJC2_64BIT_EXE: ivars 0x0 +OBJC2_64BIT_EXE: weakIvarLayout 0x0 +OBJC2_64BIT_EXE: baseProperties 0x0 +OBJC2_64BIT_EXE: Contents of (__DATA,__objc_superrefs) section +OBJC2_64BIT_EXE: 00000001000029e8 0x1000029f0 +OBJC2_64BIT_EXE: Contents of (__DATA,__objc_protolist) section +OBJC2_64BIT_EXE: 0000000100002038 0x100002a90 +OBJC2_64BIT_EXE: 0000000100002040 0x100002ae0 +OBJC2_64BIT_EXE: Contents of (__DATA,__objc_imageinfo) section +OBJC2_64BIT_EXE: version 0 +OBJC2_64BIT_EXE: flags 0x0 + +OBJC2_64BIT_OBJ: Contents of (__DATA,__objc_classlist) section +OBJC2_64BIT_OBJ: 0000000000001b00 0x1ad8 _OBJC_CLASS_$_AppDelegate +OBJC2_64BIT_OBJ: isa 0x0 _OBJC_METACLASS_$_AppDelegate +OBJC2_64BIT_OBJ: superclass 0x0 _OBJC_CLASS_$_NSObject +OBJC2_64BIT_OBJ: cache 0x0 __objc_empty_cache +OBJC2_64BIT_OBJ: vtable 0x0 +OBJC2_64BIT_OBJ: data l_OBJC_CLASS_RO_$_AppDelegate (struct class_ro_t *) +OBJC2_64BIT_OBJ: flags 0x80 +OBJC2_64BIT_OBJ: instanceStart 8 +OBJC2_64BIT_OBJ: instanceSize 8 +OBJC2_64BIT_OBJ: reserved 0x0 +OBJC2_64BIT_OBJ: ivarLayout 0x0 +OBJC2_64BIT_OBJ: name 0x6f8 AppDelegate +OBJC2_64BIT_OBJ: baseMethods l_OBJC_$_INSTANCE_METHODS_AppDelegate (struct method_list_t *) +OBJC2_64BIT_OBJ: entsize 24 +OBJC2_64BIT_OBJ: count 2 +OBJC2_64BIT_OBJ: name 0xa98 applicationDidFinishLaunching: +OBJC2_64BIT_OBJ: types 0x102e v24@0:8@16 +OBJC2_64BIT_OBJ: imp -[AppDelegate applicationDidFinishLaunching:] +OBJC2_64BIT_OBJ: name 0xbac applicationWillTerminate: +OBJC2_64BIT_OBJ: types 0x102e v24@0:8@16 +OBJC2_64BIT_OBJ: imp -[AppDelegate applicationWillTerminate:] +OBJC2_64BIT_OBJ: baseProtocols l_OBJC_CLASS_PROTOCOLS_$_AppDelegate +OBJC2_64BIT_OBJ: count 1 +OBJC2_64BIT_OBJ: list[0] l_OBJC_PROTOCOL_$_NSApplicationDelegate (struct protocol_t *) +OBJC2_64BIT_OBJ: isa 0x0 +OBJC2_64BIT_OBJ: name 0x704 NSApplicationDelegate +OBJC2_64BIT_OBJ: protocols 0x0 +OBJC2_64BIT_OBJ: instanceMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_OBJ: classMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_OBJ: optionalInstanceMethods 0x0 +OBJC2_64BIT_OBJ: optionalClassMethods 0x0 +OBJC2_64BIT_OBJ: instanceProperties 0x0 +OBJC2_64BIT_OBJ: ivars 0x0 +OBJC2_64BIT_OBJ: weakIvarLayout 0x0 +OBJC2_64BIT_OBJ: baseProperties l_OBJC_$_PROP_LIST_AppDelegate +OBJC2_64BIT_OBJ: entsize 16 +OBJC2_64BIT_OBJ: count 4 +OBJC2_64BIT_OBJ: name 0x19b8 hash +OBJC2_64BIT_OBJ: attributes 0x19bd TQ,R +OBJC2_64BIT_OBJ: name 0x19c2 superclass +OBJC2_64BIT_OBJ: attributes 0x19cd T#,R +OBJC2_64BIT_OBJ: name 0x19d2 description +OBJC2_64BIT_OBJ: attributes 0x19de T@"NSString",R,C +OBJC2_64BIT_OBJ: name 0x19ef debugDescription +OBJC2_64BIT_OBJ: attributes 0x19de T@"NSString",R,C +OBJC2_64BIT_OBJ: Meta Class +OBJC2_64BIT_OBJ: isa 0x0 _OBJC_METACLASS_$_NSObject +OBJC2_64BIT_OBJ: superclass 0x0 _OBJC_METACLASS_$_NSObject +OBJC2_64BIT_OBJ: cache 0x0 __objc_empty_cache +OBJC2_64BIT_OBJ: vtable 0x0 +OBJC2_64BIT_OBJ: data l_OBJC_METACLASS_RO_$_AppDelegate (struct class_ro_t *) +OBJC2_64BIT_OBJ: flags 0x81 RO_META +OBJC2_64BIT_OBJ: instanceStart 40 +OBJC2_64BIT_OBJ: instanceSize 40 +OBJC2_64BIT_OBJ: reserved 0x0 +OBJC2_64BIT_OBJ: ivarLayout 0x0 +OBJC2_64BIT_OBJ: name 0x6f8 AppDelegate +OBJC2_64BIT_OBJ: baseMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_OBJ: baseProtocols l_OBJC_CLASS_PROTOCOLS_$_AppDelegate +OBJC2_64BIT_OBJ: count 1 +OBJC2_64BIT_OBJ: list[0] l_OBJC_PROTOCOL_$_NSApplicationDelegate (struct protocol_t *) +OBJC2_64BIT_OBJ: isa 0x0 +OBJC2_64BIT_OBJ: name 0x704 NSApplicationDelegate +OBJC2_64BIT_OBJ: protocols 0x0 +OBJC2_64BIT_OBJ: instanceMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_OBJ: classMethods 0x0 (struct method_list_t *) +OBJC2_64BIT_OBJ: optionalInstanceMethods 0x0 +OBJC2_64BIT_OBJ: optionalClassMethods 0x0 +OBJC2_64BIT_OBJ: instanceProperties 0x0 +OBJC2_64BIT_OBJ: ivars 0x0 +OBJC2_64BIT_OBJ: weakIvarLayout 0x0 +OBJC2_64BIT_OBJ: baseProperties 0x0 +OBJC2_64BIT_OBJ: Contents of (__DATA,__objc_protolist) section +OBJC2_64BIT_OBJ: 0000000000001aa0 0x1a00 l_OBJC_PROTOCOL_$_NSObject +OBJC2_64BIT_OBJ: 0000000000001aa8 0x1a50 l_OBJC_PROTOCOL_$_NSApplicationDelegate +OBJC2_64BIT_OBJ: Contents of (__DATA,__objc_imageinfo) section +OBJC2_64BIT_OBJ: version 0 +OBJC2_64BIT_OBJ: flags 0x0 + +OBJC2_32BIT_EXE: Objective-C segment +OBJC2_32BIT_EXE: Contents of (__DATA,__objc_classlist) section +OBJC2_32BIT_EXE: 00006068 0x6a84 +OBJC2_32BIT_EXE: isa 0x6a70 +OBJC2_32BIT_EXE: superclass 0x0 +OBJC2_32BIT_EXE: cache 0x0 +OBJC2_32BIT_EXE: vtable 0x0 +OBJC2_32BIT_EXE: data 0x66e0 (struct class_ro_t *) +OBJC2_32BIT_EXE: flags 0x184 RO_HAS_CXX_STRUCTORS +OBJC2_32BIT_EXE: instanceStart 4 +OBJC2_32BIT_EXE: instanceSize 8 +OBJC2_32BIT_EXE: ivarLayout 0x52c2 +OBJC2_32BIT_EXE: layout map: 0x01 +OBJC2_32BIT_EXE: name 0x5279 AppDelegate +OBJC2_32BIT_EXE: baseMethods 0x6614 (struct method_list_t *) +OBJC2_32BIT_EXE: entsize 12 +OBJC2_32BIT_EXE: count 10 +OBJC2_32BIT_EXE: name 0x454c application:didFinishLaunchingWithOptions: +OBJC2_32BIT_EXE: types 0x562b c16@0:4@8@12 +OBJC2_32BIT_EXE: imp 0x23c0 +OBJC2_32BIT_EXE: name 0x4593 applicationWillResignActive: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x25f0 +OBJC2_32BIT_EXE: name 0x4a6a applicationDidEnterBackground: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x2640 +OBJC2_32BIT_EXE: name 0x4a89 applicationWillEnterForeground: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x2690 +OBJC2_32BIT_EXE: name 0x4577 applicationDidBecomeActive: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x26e0 +OBJC2_32BIT_EXE: name 0x463e applicationWillTerminate: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x2730 +OBJC2_32BIT_EXE: name 0x42da splitViewController:collapseSecondaryViewController:ontoPrimaryViewController: +OBJC2_32BIT_EXE: types 0x5351 c20@0:4@8@12@16 +OBJC2_32BIT_EXE: imp 0x2780 +OBJC2_32BIT_EXE: name 0x4e21 .cxx_destruct +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x2a70 +OBJC2_32BIT_EXE: name 0x40fc window +OBJC2_32BIT_EXE: types 0x5c80 @8@0:4 +OBJC2_32BIT_EXE: imp 0x2a00 +OBJC2_32BIT_EXE: name 0x4d1a setWindow: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x2a30 +OBJC2_32BIT_EXE: baseProtocols 0x65dc +OBJC2_32BIT_EXE: count 2 +OBJC2_32BIT_EXE: list[0] 0x6ae8 (struct protocol_t *) +OBJC2_32BIT_EXE: isa 0x0 +OBJC2_32BIT_EXE: name 0x5285 UISplitViewControllerDelegate +OBJC2_32BIT_EXE: protocols 0x0 +OBJC2_32BIT_EXE: instanceMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: classMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: optionalInstanceMethods 0x6088 +OBJC2_32BIT_EXE: optionalClassMethods 0x0 +OBJC2_32BIT_EXE: instanceProperties 0x0 +OBJC2_32BIT_EXE: list[1] 0x6b40 (struct protocol_t *) +OBJC2_32BIT_EXE: isa 0x0 +OBJC2_32BIT_EXE: name 0x52a3 UIApplicationDelegate +OBJC2_32BIT_EXE: protocols 0x62e8 +OBJC2_32BIT_EXE: instanceMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: classMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: optionalInstanceMethods 0x62f4 +OBJC2_32BIT_EXE: optionalClassMethods 0x0 +OBJC2_32BIT_EXE: instanceProperties 0x6518 +OBJC2_32BIT_EXE: ivars 0x6694 +OBJC2_32BIT_EXE: entsize 20 +OBJC2_32BIT_EXE: count 1 +OBJC2_32BIT_EXE: offset 0x6a5c 4 +OBJC2_32BIT_EXE: name 0x4e2f _window +OBJC2_32BIT_EXE: type 0x5d4b @"UIWindow" +OBJC2_32BIT_EXE: alignment 2 +OBJC2_32BIT_EXE: size 4 +OBJC2_32BIT_EXE: weakIvarLayout 0x0 +OBJC2_32BIT_EXE: baseProperties 0x66b0 +OBJC2_32BIT_EXE: entsize 8 +OBJC2_32BIT_EXE: count 5 +OBJC2_32BIT_EXE: name 0x5df3 window +OBJC2_32BIT_EXE: attributes 0x5e0b T@"UIWindow",&,N,V_window +OBJC2_32BIT_EXE: name 0x5dab hash +OBJC2_32BIT_EXE: attributes 0x5db0 TI,R +OBJC2_32BIT_EXE: name 0x5db5 superclass +OBJC2_32BIT_EXE: attributes 0x5dc0 T#,R +OBJC2_32BIT_EXE: name 0x5dc5 description +OBJC2_32BIT_EXE: attributes 0x5dd1 T@"NSString",R,C +OBJC2_32BIT_EXE: name 0x5de2 debugDescription +OBJC2_32BIT_EXE: attributes 0x5dd1 T@"NSString",R,C +OBJC2_32BIT_EXE: Meta Class +OBJC2_32BIT_EXE: isa 0x0 +OBJC2_32BIT_EXE: superclass 0x0 +OBJC2_32BIT_EXE: cache 0x0 +OBJC2_32BIT_EXE: vtable 0x0 +OBJC2_32BIT_EXE: data 0x65ec (struct class_ro_t *) +OBJC2_32BIT_EXE: flags 0x185 RO_META RO_HAS_CXX_STRUCTORS +OBJC2_32BIT_EXE: instanceStart 20 +OBJC2_32BIT_EXE: instanceSize 20 +OBJC2_32BIT_EXE: ivarLayout 0x0 +OBJC2_32BIT_EXE: name 0x5279 AppDelegate +OBJC2_32BIT_EXE: baseMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: baseProtocols 0x65dc +OBJC2_32BIT_EXE: count 2 +OBJC2_32BIT_EXE: list[0] 0x6ae8 (struct protocol_t *) +OBJC2_32BIT_EXE: isa 0x0 +OBJC2_32BIT_EXE: name 0x5285 UISplitViewControllerDelegate +OBJC2_32BIT_EXE: protocols 0x0 +OBJC2_32BIT_EXE: instanceMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: classMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: optionalInstanceMethods 0x6088 +OBJC2_32BIT_EXE: optionalClassMethods 0x0 +OBJC2_32BIT_EXE: instanceProperties 0x0 +OBJC2_32BIT_EXE: list[1] 0x6b40 (struct protocol_t *) +OBJC2_32BIT_EXE: isa 0x0 +OBJC2_32BIT_EXE: name 0x52a3 UIApplicationDelegate +OBJC2_32BIT_EXE: protocols 0x62e8 +OBJC2_32BIT_EXE: instanceMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: classMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: optionalInstanceMethods 0x62f4 +OBJC2_32BIT_EXE: optionalClassMethods 0x0 +OBJC2_32BIT_EXE: instanceProperties 0x6518 +OBJC2_32BIT_EXE: ivars 0x0 +OBJC2_32BIT_EXE: weakIvarLayout 0x0 +OBJC2_32BIT_EXE: baseProperties 0x0 +OBJC2_32BIT_EXE: 0000606c 0x6a98 +OBJC2_32BIT_EXE: isa 0x6aac +OBJC2_32BIT_EXE: superclass 0x0 +OBJC2_32BIT_EXE: cache 0x0 +OBJC2_32BIT_EXE: vtable 0x0 +OBJC2_32BIT_EXE: data 0x6838 (struct class_ro_t *) +OBJC2_32BIT_EXE: flags 0x184 RO_HAS_CXX_STRUCTORS +OBJC2_32BIT_EXE: instanceStart 4 +OBJC2_32BIT_EXE: instanceSize 12 +OBJC2_32BIT_EXE: ivarLayout 0x52d9 +OBJC2_32BIT_EXE: layout map: 0x02 +OBJC2_32BIT_EXE: name 0x52c4 MasterViewController +OBJC2_32BIT_EXE: baseMethods 0x6730 (struct method_list_t *) +OBJC2_32BIT_EXE: entsize 12 +OBJC2_32BIT_EXE: count 15 +OBJC2_32BIT_EXE: name 0x4e37 awakeFromNib +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x2ab0 +OBJC2_32BIT_EXE: name 0x4ea2 viewDidLoad +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x2c20 +OBJC2_32BIT_EXE: name 0x4f43 didReceiveMemoryWarning +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x2e80 +OBJC2_32BIT_EXE: name 0x4ec3 insertNewObject: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x2ed0 +OBJC2_32BIT_EXE: name 0x5119 prepareForSegue:sender: +OBJC2_32BIT_EXE: types 0x57b1 v16@0:4@8@12 +OBJC2_32BIT_EXE: imp 0x3160 +OBJC2_32BIT_EXE: name 0x5131 numberOfSectionsInTableView: +OBJC2_32BIT_EXE: types 0x5326 i12@0:4@8 +OBJC2_32BIT_EXE: imp 0x34c0 +OBJC2_32BIT_EXE: name 0x514e tableView:numberOfRowsInSection: +OBJC2_32BIT_EXE: types 0x5d57 i16@0:4@8i12 +OBJC2_32BIT_EXE: imp 0x3520 +OBJC2_32BIT_EXE: name 0x516f tableView:cellForRowAtIndexPath: +OBJC2_32BIT_EXE: types 0x5422 @16@0:4@8@12 +OBJC2_32BIT_EXE: imp 0x35e0 +OBJC2_32BIT_EXE: name 0x5190 tableView:canEditRowAtIndexPath: +OBJC2_32BIT_EXE: types 0x562b c16@0:4@8@12 +OBJC2_32BIT_EXE: imp 0x37e0 +OBJC2_32BIT_EXE: name 0x51b1 tableView:commitEditingStyle:forRowAtIndexPath: +OBJC2_32BIT_EXE: types 0x5d64 v20@0:4@8i12@16 +OBJC2_32BIT_EXE: imp 0x3880 +OBJC2_32BIT_EXE: name 0x4e21 .cxx_destruct +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x3b40 +OBJC2_32BIT_EXE: name 0x51e1 detailViewController +OBJC2_32BIT_EXE: types 0x5c80 @8@0:4 +OBJC2_32BIT_EXE: imp 0x3a30 +OBJC2_32BIT_EXE: name 0x4f2a setDetailViewController: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x3a60 +OBJC2_32BIT_EXE: name 0x4f5b objects +OBJC2_32BIT_EXE: types 0x5c80 @8@0:4 +OBJC2_32BIT_EXE: imp 0x3aa0 +OBJC2_32BIT_EXE: name 0x4f68 setObjects: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x3af0 +OBJC2_32BIT_EXE: baseProtocols 0x0 +OBJC2_32BIT_EXE: ivars 0x67ec +OBJC2_32BIT_EXE: entsize 20 +OBJC2_32BIT_EXE: count 2 +OBJC2_32BIT_EXE: offset 0x6a60 4 +OBJC2_32BIT_EXE: name 0x51f6 _detailViewController +OBJC2_32BIT_EXE: type 0x5d74 @"DetailViewController" +OBJC2_32BIT_EXE: alignment 2 +OBJC2_32BIT_EXE: size 4 +OBJC2_32BIT_EXE: offset 0x6a64 8 +OBJC2_32BIT_EXE: name 0x520c _objects +OBJC2_32BIT_EXE: type 0x5d8c @"NSMutableArray" +OBJC2_32BIT_EXE: alignment 2 +OBJC2_32BIT_EXE: size 4 +OBJC2_32BIT_EXE: weakIvarLayout 0x0 +OBJC2_32BIT_EXE: baseProperties 0x6820 +OBJC2_32BIT_EXE: entsize 8 +OBJC2_32BIT_EXE: count 2 +OBJC2_32BIT_EXE: name 0x5e35 detailViewController +OBJC2_32BIT_EXE: attributes 0x5e4a T@"DetailViewController",&,N,V_detailViewController +OBJC2_32BIT_EXE: name 0x5e7e objects +OBJC2_32BIT_EXE: attributes 0x5e86 T@"NSMutableArray",&,V_objects +OBJC2_32BIT_EXE: Meta Class +OBJC2_32BIT_EXE: isa 0x0 +OBJC2_32BIT_EXE: superclass 0x0 +OBJC2_32BIT_EXE: cache 0x0 +OBJC2_32BIT_EXE: vtable 0x0 +OBJC2_32BIT_EXE: data 0x6708 (struct class_ro_t *) +OBJC2_32BIT_EXE: flags 0x185 RO_META RO_HAS_CXX_STRUCTORS +OBJC2_32BIT_EXE: instanceStart 20 +OBJC2_32BIT_EXE: instanceSize 20 +OBJC2_32BIT_EXE: ivarLayout 0x0 +OBJC2_32BIT_EXE: name 0x52c4 MasterViewController +OBJC2_32BIT_EXE: baseMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: baseProtocols 0x0 +OBJC2_32BIT_EXE: ivars 0x0 +OBJC2_32BIT_EXE: weakIvarLayout 0x0 +OBJC2_32BIT_EXE: baseProperties 0x0 +OBJC2_32BIT_EXE: 00006070 0x6ac0 +OBJC2_32BIT_EXE: isa 0x6ad4 +OBJC2_32BIT_EXE: superclass 0x0 +OBJC2_32BIT_EXE: cache 0x0 +OBJC2_32BIT_EXE: vtable 0x0 +OBJC2_32BIT_EXE: data 0x6938 (struct class_ro_t *) +OBJC2_32BIT_EXE: flags 0x184 RO_HAS_CXX_STRUCTORS +OBJC2_32BIT_EXE: instanceStart 4 +OBJC2_32BIT_EXE: instanceSize 12 +OBJC2_32BIT_EXE: ivarLayout 0x52f0 +OBJC2_32BIT_EXE: layout map: 0x01 0x10 +OBJC2_32BIT_EXE: name 0x52db DetailViewController +OBJC2_32BIT_EXE: baseMethods 0x6888 (struct method_list_t *) +OBJC2_32BIT_EXE: entsize 12 +OBJC2_32BIT_EXE: count 8 +OBJC2_32BIT_EXE: name 0x5061 setDetailItem: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x3c70 +OBJC2_32BIT_EXE: name 0x5215 configureView +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x3d20 +OBJC2_32BIT_EXE: name 0x4ea2 viewDidLoad +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x3e20 +OBJC2_32BIT_EXE: name 0x4f43 didReceiveMemoryWarning +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x3e80 +OBJC2_32BIT_EXE: name 0x4e21 .cxx_destruct +OBJC2_32BIT_EXE: types 0x5d44 v8@0:4 +OBJC2_32BIT_EXE: imp 0x3f90 +OBJC2_32BIT_EXE: name 0x41a0 detailItem +OBJC2_32BIT_EXE: types 0x5c80 @8@0:4 +OBJC2_32BIT_EXE: imp 0x3ed0 +OBJC2_32BIT_EXE: name 0x5223 detailDescriptionLabel +OBJC2_32BIT_EXE: types 0x5c80 @8@0:4 +OBJC2_32BIT_EXE: imp 0x3f00 +OBJC2_32BIT_EXE: name 0x523a setDetailDescriptionLabel: +OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8 +OBJC2_32BIT_EXE: imp 0x3f40 +OBJC2_32BIT_EXE: baseProtocols 0x0 +OBJC2_32BIT_EXE: ivars 0x68f0 +OBJC2_32BIT_EXE: entsize 20 +OBJC2_32BIT_EXE: count 2 +OBJC2_32BIT_EXE: offset 0x6a68 4 +OBJC2_32BIT_EXE: name 0x5255 _detailItem +OBJC2_32BIT_EXE: type 0x5d9e @ +OBJC2_32BIT_EXE: alignment 2 +OBJC2_32BIT_EXE: size 4 +OBJC2_32BIT_EXE: offset 0x6a6c 8 +OBJC2_32BIT_EXE: name 0x5261 _detailDescriptionLabel +OBJC2_32BIT_EXE: type 0x5da0 @"UILabel" +OBJC2_32BIT_EXE: alignment 2 +OBJC2_32BIT_EXE: size 4 +OBJC2_32BIT_EXE: weakIvarLayout 0x52f3 +OBJC2_32BIT_EXE: layout map: 0x11 +OBJC2_32BIT_EXE: baseProperties 0x6920 +OBJC2_32BIT_EXE: entsize 8 +OBJC2_32BIT_EXE: count 2 +OBJC2_32BIT_EXE: name 0x5ea5 detailItem +OBJC2_32BIT_EXE: attributes 0x5eb0 T@,&,N,V_detailItem +OBJC2_32BIT_EXE: name 0x5ec4 detailDescriptionLabel +OBJC2_32BIT_EXE: attributes 0x5edb T@"UILabel",W,N,V_detailDescriptionLabel +OBJC2_32BIT_EXE: Meta Class +OBJC2_32BIT_EXE: isa 0x0 +OBJC2_32BIT_EXE: superclass 0x0 +OBJC2_32BIT_EXE: cache 0x0 +OBJC2_32BIT_EXE: vtable 0x0 +OBJC2_32BIT_EXE: data 0x6860 (struct class_ro_t *) +OBJC2_32BIT_EXE: flags 0x185 RO_META RO_HAS_CXX_STRUCTORS +OBJC2_32BIT_EXE: instanceStart 20 +OBJC2_32BIT_EXE: instanceSize 20 +OBJC2_32BIT_EXE: ivarLayout 0x0 +OBJC2_32BIT_EXE: name 0x52db DetailViewController +OBJC2_32BIT_EXE: baseMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_EXE: baseProtocols 0x0 +OBJC2_32BIT_EXE: ivars 0x0 +OBJC2_32BIT_EXE: weakIvarLayout 0x0 +OBJC2_32BIT_EXE: baseProperties 0x0 +OBJC2_32BIT_EXE: Contents of (__DATA,__objc_classrefs) section +OBJC2_32BIT_EXE: 00006a30 0x0 +OBJC2_32BIT_EXE: 00006a34 0x6ac0 +OBJC2_32BIT_EXE: 00006a38 0x0 +OBJC2_32BIT_EXE: 00006a3c 0x0 +OBJC2_32BIT_EXE: 00006a40 0x0 +OBJC2_32BIT_EXE: 00006a44 0x0 +OBJC2_32BIT_EXE: 00006a48 0x0 +OBJC2_32BIT_EXE: 00006a4c 0x0 +OBJC2_32BIT_EXE: 00006a50 0x6a84 +OBJC2_32BIT_EXE: Contents of (__DATA,__objc_superrefs) section +OBJC2_32BIT_EXE: 00006a54 0x6a98 +OBJC2_32BIT_EXE: 00006a58 0x6ac0 +OBJC2_32BIT_EXE: Contents of (__DATA,__objc_protolist) section +OBJC2_32BIT_EXE: 00006074 0x6ae8 +OBJC2_32BIT_EXE: 00006078 0x6b14 +OBJC2_32BIT_EXE: 0000607c 0x6b40 +OBJC2_32BIT_EXE: Contents of (__DATA,__objc_imageinfo) section +OBJC2_32BIT_EXE: version 0 +OBJC2_32BIT_EXE: flags 0x20 + +OBJC2_32BIT_OBJ: Objective-C segment +OBJC2_32BIT_OBJ: Contents of (__DATA,__objc_classlist) section +OBJC2_32BIT_OBJ: 00003ae4 0x3914 _OBJC_CLASS_$_DetailViewController +OBJC2_32BIT_OBJ: isa 0x3928 _OBJC_METACLASS_$_DetailViewController +OBJC2_32BIT_OBJ: superclass 0x0 _OBJC_CLASS_$_UIViewController +OBJC2_32BIT_OBJ: cache 0x0 __objc_empty_cache +OBJC2_32BIT_OBJ: vtable 0x0 -[DetailViewController setDetailItem:] +OBJC2_32BIT_OBJ: data 0x3a38 (struct class_ro_t *) +OBJC2_32BIT_OBJ: flags 0x184 RO_HAS_CXX_STRUCTORS +OBJC2_32BIT_OBJ: instanceStart 4 +OBJC2_32BIT_OBJ: instanceSize 12 +OBJC2_32BIT_OBJ: ivarLayout 0x3955 +OBJC2_32BIT_OBJ: layout map: 0x01 0x10 +OBJC2_32BIT_OBJ: name 0x3940 DetailViewController +OBJC2_32BIT_OBJ: baseMethods 0x3988 (struct method_list_t *) +OBJC2_32BIT_OBJ: entsize 12 +OBJC2_32BIT_OBJ: count 8 +OBJC2_32BIT_OBJ: name 0x3899 setDetailItem: +OBJC2_32BIT_OBJ: types 0x3a60 v12@0:4@8 +OBJC2_32BIT_OBJ: imp 0x0 -[DetailViewController setDetailItem:] +OBJC2_32BIT_OBJ: name 0x3830 configureView +OBJC2_32BIT_OBJ: types 0x3a6a v8@0:4 +OBJC2_32BIT_OBJ: imp 0xb0 -[DetailViewController configureView] +OBJC2_32BIT_OBJ: name 0x3875 viewDidLoad +OBJC2_32BIT_OBJ: types 0x3a6a v8@0:4 +OBJC2_32BIT_OBJ: imp 0x1b0 -[DetailViewController viewDidLoad] +OBJC2_32BIT_OBJ: name 0x3881 didReceiveMemoryWarning +OBJC2_32BIT_OBJ: types 0x3a6a v8@0:4 +OBJC2_32BIT_OBJ: imp 0x210 -[DetailViewController didReceiveMemoryWarning] +OBJC2_32BIT_OBJ: name 0x38a8 .cxx_destruct +OBJC2_32BIT_OBJ: types 0x3a6a v8@0:4 +OBJC2_32BIT_OBJ: imp 0x320 -[DetailViewController .cxx_destruct] +OBJC2_32BIT_OBJ: name 0x383e detailItem +OBJC2_32BIT_OBJ: types 0x3a71 @8@0:4 +OBJC2_32BIT_OBJ: imp 0x260 -[DetailViewController detailItem] +OBJC2_32BIT_OBJ: name 0x3849 detailDescriptionLabel +OBJC2_32BIT_OBJ: types 0x3a71 @8@0:4 +OBJC2_32BIT_OBJ: imp 0x290 -[DetailViewController detailDescriptionLabel] +OBJC2_32BIT_OBJ: name 0x38b6 setDetailDescriptionLabel: +OBJC2_32BIT_OBJ: types 0x3a60 v12@0:4@8 +OBJC2_32BIT_OBJ: imp 0x2d0 -[DetailViewController setDetailDescriptionLabel:] +OBJC2_32BIT_OBJ: baseProtocols 0x0 +OBJC2_32BIT_OBJ: ivars 0x39f0 +OBJC2_32BIT_OBJ: entsize 20 +OBJC2_32BIT_OBJ: count 2 +OBJC2_32BIT_OBJ: offset 0x3828 4 +OBJC2_32BIT_OBJ: name 0x38d1 _detailItem +OBJC2_32BIT_OBJ: type 0x3a78 @ +OBJC2_32BIT_OBJ: alignment 2 +OBJC2_32BIT_OBJ: size 4 +OBJC2_32BIT_OBJ: offset 0x382c 8 +OBJC2_32BIT_OBJ: name 0x38dd _detailDescriptionLabel +OBJC2_32BIT_OBJ: type 0x3a7a @"UILabel" +OBJC2_32BIT_OBJ: alignment 2 +OBJC2_32BIT_OBJ: size 4 +OBJC2_32BIT_OBJ: weakIvarLayout 0x3958 +OBJC2_32BIT_OBJ: layout map: 0x11 +OBJC2_32BIT_OBJ: baseProperties 0x3a20 +OBJC2_32BIT_OBJ: entsize 8 +OBJC2_32BIT_OBJ: count 2 +OBJC2_32BIT_OBJ: name 0x3a85 detailItem +OBJC2_32BIT_OBJ: attributes 0x3a90 T@,&,N,V_detailItem +OBJC2_32BIT_OBJ: name 0x3aa4 detailDescriptionLabel +OBJC2_32BIT_OBJ: attributes 0x3abb T@"UILabel",W,N,V_detailDescriptionLabel +OBJC2_32BIT_OBJ: Meta Class +OBJC2_32BIT_OBJ: isa 0x0 _OBJC_METACLASS_$_NSObject +OBJC2_32BIT_OBJ: superclass 0x0 _OBJC_METACLASS_$_UIViewController +OBJC2_32BIT_OBJ: cache 0x0 __objc_empty_cache +OBJC2_32BIT_OBJ: vtable 0x0 -[DetailViewController setDetailItem:] +OBJC2_32BIT_OBJ: data 0x3960 (struct class_ro_t *) +OBJC2_32BIT_OBJ: flags 0x185 RO_META RO_HAS_CXX_STRUCTORS +OBJC2_32BIT_OBJ: instanceStart 20 +OBJC2_32BIT_OBJ: instanceSize 20 +OBJC2_32BIT_OBJ: ivarLayout 0x0 +OBJC2_32BIT_OBJ: name 0x3940 DetailViewController +OBJC2_32BIT_OBJ: baseMethods 0x0 (struct method_list_t *) +OBJC2_32BIT_OBJ: baseProtocols 0x0 +OBJC2_32BIT_OBJ: ivars 0x0 +OBJC2_32BIT_OBJ: weakIvarLayout 0x0 +OBJC2_32BIT_OBJ: baseProperties 0x0 +OBJC2_32BIT_OBJ: Contents of (__DATA,__objc_superrefs) section +OBJC2_32BIT_OBJ: 0000393c 0x3914 _OBJC_CLASS_$_DetailViewController +OBJC2_32BIT_OBJ: Contents of (__DATA,__objc_imageinfo) section +OBJC2_32BIT_OBJ: version 0 +OBJC2_32BIT_OBJ: flags 0x20 + +OBJC1_32BIT_EXE: Objective-C segment +OBJC1_32BIT_EXE: Module 0x4128 +OBJC1_32BIT_EXE: version 7 +OBJC1_32BIT_EXE: size 16 +OBJC1_32BIT_EXE: name +OBJC1_32BIT_EXE: symtab 0x00004108 +OBJC1_32BIT_EXE: sel_ref_cnt 0 +OBJC1_32BIT_EXE: refs 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: cls_def_cnt 1 +OBJC1_32BIT_EXE: cat_def_cnt 0 +OBJC1_32BIT_EXE: Class Definitions +OBJC1_32BIT_EXE: defs[0] 0x00004000 +OBJC1_32BIT_EXE: isa 0x00004068 +OBJC1_32BIT_EXE: super_class 0x000025b8 NSViewController +OBJC1_32BIT_EXE: name 0x000025c9 ViewController +OBJC1_32BIT_EXE: version 0x00000000 +OBJC1_32BIT_EXE: info 0x00000001 CLS_CLASS +OBJC1_32BIT_EXE: instance_size 0x00000034 +OBJC1_32BIT_EXE: ivars 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: methods 0x000040c8 +OBJC1_32BIT_EXE: obsolete 0x00000000 +OBJC1_32BIT_EXE: method_count 2 +OBJC1_32BIT_EXE: method_name 0x0000257c viewDidLoad +OBJC1_32BIT_EXE: method_types 0x0000259e v8@0:4 +OBJC1_32BIT_EXE: method_imp 0x00002430 +OBJC1_32BIT_EXE: method_name 0x00002588 setRepresentedObject: +OBJC1_32BIT_EXE: method_types 0x000025a5 v12@0:4@8 +OBJC1_32BIT_EXE: method_imp 0x00002480 +OBJC1_32BIT_EXE: cache 0x00000000 +OBJC1_32BIT_EXE: protocols 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: Meta Class +OBJC1_32BIT_EXE: isa 0x000025af NSObject +OBJC1_32BIT_EXE: super_class 0x000025b8 NSViewController +OBJC1_32BIT_EXE: name 0x000025c9 ViewController +OBJC1_32BIT_EXE: version 0x00000000 +OBJC1_32BIT_EXE: info 0x00000002 CLS_META +OBJC1_32BIT_EXE: instance_size 0x00000030 +OBJC1_32BIT_EXE: ivars 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: cache 0x00000000 +OBJC1_32BIT_EXE: protocols 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: Module 0x4138 +OBJC1_32BIT_EXE: version 7 +OBJC1_32BIT_EXE: size 16 +OBJC1_32BIT_EXE: name +OBJC1_32BIT_EXE: symtab 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: Module 0x4148 +OBJC1_32BIT_EXE: version 7 +OBJC1_32BIT_EXE: size 16 +OBJC1_32BIT_EXE: name +OBJC1_32BIT_EXE: symtab 0x00004118 +OBJC1_32BIT_EXE: sel_ref_cnt 0 +OBJC1_32BIT_EXE: refs 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: cls_def_cnt 1 +OBJC1_32BIT_EXE: cat_def_cnt 0 +OBJC1_32BIT_EXE: Class Definitions +OBJC1_32BIT_EXE: defs[0] 0x00004030 +OBJC1_32BIT_EXE: isa 0x00004098 +OBJC1_32BIT_EXE: super_class 0x000025af NSObject +OBJC1_32BIT_EXE: name 0x00002faa AppDelegate +OBJC1_32BIT_EXE: version 0x00000000 +OBJC1_32BIT_EXE: info 0x00000001 CLS_CLASS +OBJC1_32BIT_EXE: instance_size 0x00000004 +OBJC1_32BIT_EXE: ivars 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: methods 0x000040e8 +OBJC1_32BIT_EXE: obsolete 0x00000000 +OBJC1_32BIT_EXE: method_count 2 +OBJC1_32BIT_EXE: method_name 0x00002c5b applicationDidFinishLaunching: +OBJC1_32BIT_EXE: method_types 0x000025a5 v12@0:4@8 +OBJC1_32BIT_EXE: method_imp 0x00002510 +OBJC1_32BIT_EXE: method_name 0x00002d6f applicationWillTerminate: +OBJC1_32BIT_EXE: method_types 0x000025a5 v12@0:4@8 +OBJC1_32BIT_EXE: method_imp 0x00002530 +OBJC1_32BIT_EXE: cache 0x00000000 +OBJC1_32BIT_EXE: protocols 0x000043b4 +OBJC1_32BIT_EXE: next 0x00000000 +OBJC1_32BIT_EXE: count 1 +OBJC1_32BIT_EXE: list[0] 0x00004390 +OBJC1_32BIT_EXE: isa 0x000030b0 +OBJC1_32BIT_EXE: protocol_name 0x00002dd3 NSApplicationDelegate +OBJC1_32BIT_EXE: protocol_list 0x000043a4 +OBJC1_32BIT_EXE: next 0x00000000 +OBJC1_32BIT_EXE: count 1 +OBJC1_32BIT_EXE: list[0] 0x0000437c +OBJC1_32BIT_EXE: isa 0x00003120 +OBJC1_32BIT_EXE: protocol_name 0x000025af NSObject +OBJC1_32BIT_EXE: protocol_list 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: instance_methods 0x00004290 +OBJC1_32BIT_EXE: count 19 +OBJC1_32BIT_EXE: list[0] +OBJC1_32BIT_EXE: name 0x00002de9 isEqual: +OBJC1_32BIT_EXE: types 0x000026e7 c12@0:4@8 +OBJC1_32BIT_EXE: list[1] +OBJC1_32BIT_EXE: name 0x00002df2 class +OBJC1_32BIT_EXE: types 0x00002df8 #8@0:4 +OBJC1_32BIT_EXE: list[2] +OBJC1_32BIT_EXE: name 0x00002dff self +OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4 +OBJC1_32BIT_EXE: list[3] +OBJC1_32BIT_EXE: name 0x00002e0b performSelector: +OBJC1_32BIT_EXE: types 0x00002e1c @12@0:4:8 +OBJC1_32BIT_EXE: list[4] +OBJC1_32BIT_EXE: name 0x00002e26 performSelector:withObject: +OBJC1_32BIT_EXE: types 0x00002e42 @16@0:4:8@12 +OBJC1_32BIT_EXE: list[5] +OBJC1_32BIT_EXE: name 0x00002e4f performSelector:withObject:withObject: +OBJC1_32BIT_EXE: types 0x00002e76 @20@0:4:8@12@16 +OBJC1_32BIT_EXE: list[6] +OBJC1_32BIT_EXE: name 0x00002e86 isProxy +OBJC1_32BIT_EXE: types 0x00002e8e c8@0:4 +OBJC1_32BIT_EXE: list[7] +OBJC1_32BIT_EXE: name 0x00002e95 isKindOfClass: +OBJC1_32BIT_EXE: types 0x00002ea4 c12@0:4#8 +OBJC1_32BIT_EXE: list[8] +OBJC1_32BIT_EXE: name 0x00002eae isMemberOfClass: +OBJC1_32BIT_EXE: types 0x00002ea4 c12@0:4#8 +OBJC1_32BIT_EXE: list[9] +OBJC1_32BIT_EXE: name 0x00002ebf conformsToProtocol: +OBJC1_32BIT_EXE: types 0x000026e7 c12@0:4@8 +OBJC1_32BIT_EXE: list[10] +OBJC1_32BIT_EXE: name 0x00002ee7 respondsToSelector: +OBJC1_32BIT_EXE: types 0x00002efb c12@0:4:8 +OBJC1_32BIT_EXE: list[11] +OBJC1_32BIT_EXE: name 0x00002f05 retain +OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4 +OBJC1_32BIT_EXE: list[12] +OBJC1_32BIT_EXE: name 0x00002f0c release +OBJC1_32BIT_EXE: types 0x00002f14 Vv8@0:4 +OBJC1_32BIT_EXE: list[13] +OBJC1_32BIT_EXE: name 0x00002f1c autorelease +OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4 +OBJC1_32BIT_EXE: list[14] +OBJC1_32BIT_EXE: name 0x00002f28 retainCount +OBJC1_32BIT_EXE: types 0x00002f34 I8@0:4 +OBJC1_32BIT_EXE: list[15] +OBJC1_32BIT_EXE: name 0x00002f3b zone +OBJC1_32BIT_EXE: types 0x00002f40 ^{_NSZone=}8@0:4 +OBJC1_32BIT_EXE: list[16] +OBJC1_32BIT_EXE: name 0x00002f51 hash +OBJC1_32BIT_EXE: types 0x00002f34 I8@0:4 +OBJC1_32BIT_EXE: list[17] +OBJC1_32BIT_EXE: name 0x00002f56 superclass +OBJC1_32BIT_EXE: types 0x00002df8 #8@0:4 +OBJC1_32BIT_EXE: list[18] +OBJC1_32BIT_EXE: name 0x00002f61 description +OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4 +OBJC1_32BIT_EXE: class_methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: instance_methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: class_methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: Meta Class +OBJC1_32BIT_EXE: isa 0x000025af NSObject +OBJC1_32BIT_EXE: super_class 0x000025af NSObject +OBJC1_32BIT_EXE: name 0x00002faa AppDelegate +OBJC1_32BIT_EXE: version 0x00000000 +OBJC1_32BIT_EXE: info 0x00000002 CLS_META +OBJC1_32BIT_EXE: instance_size 0x00000030 +OBJC1_32BIT_EXE: ivars 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: cache 0x00000000 +OBJC1_32BIT_EXE: protocols 0x000043b4 +OBJC1_32BIT_EXE: next 0x00000000 +OBJC1_32BIT_EXE: count 1 +OBJC1_32BIT_EXE: list[0] 0x00004390 +OBJC1_32BIT_EXE: isa 0x000030b0 +OBJC1_32BIT_EXE: protocol_name 0x00002dd3 NSApplicationDelegate +OBJC1_32BIT_EXE: protocol_list 0x000043a4 +OBJC1_32BIT_EXE: next 0x00000000 +OBJC1_32BIT_EXE: count 1 +OBJC1_32BIT_EXE: list[0] 0x0000437c +OBJC1_32BIT_EXE: isa 0x00003120 +OBJC1_32BIT_EXE: protocol_name 0x000025af NSObject +OBJC1_32BIT_EXE: protocol_list 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: instance_methods 0x00004290 +OBJC1_32BIT_EXE: count 19 +OBJC1_32BIT_EXE: list[0] +OBJC1_32BIT_EXE: name 0x00002de9 isEqual: +OBJC1_32BIT_EXE: types 0x000026e7 c12@0:4@8 +OBJC1_32BIT_EXE: list[1] +OBJC1_32BIT_EXE: name 0x00002df2 class +OBJC1_32BIT_EXE: types 0x00002df8 #8@0:4 +OBJC1_32BIT_EXE: list[2] +OBJC1_32BIT_EXE: name 0x00002dff self +OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4 +OBJC1_32BIT_EXE: list[3] +OBJC1_32BIT_EXE: name 0x00002e0b performSelector: +OBJC1_32BIT_EXE: types 0x00002e1c @12@0:4:8 +OBJC1_32BIT_EXE: list[4] +OBJC1_32BIT_EXE: name 0x00002e26 performSelector:withObject: +OBJC1_32BIT_EXE: types 0x00002e42 @16@0:4:8@12 +OBJC1_32BIT_EXE: list[5] +OBJC1_32BIT_EXE: name 0x00002e4f performSelector:withObject:withObject: +OBJC1_32BIT_EXE: types 0x00002e76 @20@0:4:8@12@16 +OBJC1_32BIT_EXE: list[6] +OBJC1_32BIT_EXE: name 0x00002e86 isProxy +OBJC1_32BIT_EXE: types 0x00002e8e c8@0:4 +OBJC1_32BIT_EXE: list[7] +OBJC1_32BIT_EXE: name 0x00002e95 isKindOfClass: +OBJC1_32BIT_EXE: types 0x00002ea4 c12@0:4#8 +OBJC1_32BIT_EXE: list[8] +OBJC1_32BIT_EXE: name 0x00002eae isMemberOfClass: +OBJC1_32BIT_EXE: types 0x00002ea4 c12@0:4#8 +OBJC1_32BIT_EXE: list[9] +OBJC1_32BIT_EXE: name 0x00002ebf conformsToProtocol: +OBJC1_32BIT_EXE: types 0x000026e7 c12@0:4@8 +OBJC1_32BIT_EXE: list[10] +OBJC1_32BIT_EXE: name 0x00002ee7 respondsToSelector: +OBJC1_32BIT_EXE: types 0x00002efb c12@0:4:8 +OBJC1_32BIT_EXE: list[11] +OBJC1_32BIT_EXE: name 0x00002f05 retain +OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4 +OBJC1_32BIT_EXE: list[12] +OBJC1_32BIT_EXE: name 0x00002f0c release +OBJC1_32BIT_EXE: types 0x00002f14 Vv8@0:4 +OBJC1_32BIT_EXE: list[13] +OBJC1_32BIT_EXE: name 0x00002f1c autorelease +OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4 +OBJC1_32BIT_EXE: list[14] +OBJC1_32BIT_EXE: name 0x00002f28 retainCount +OBJC1_32BIT_EXE: types 0x00002f34 I8@0:4 +OBJC1_32BIT_EXE: list[15] +OBJC1_32BIT_EXE: name 0x00002f3b zone +OBJC1_32BIT_EXE: types 0x00002f40 ^{_NSZone=}8@0:4 +OBJC1_32BIT_EXE: list[16] +OBJC1_32BIT_EXE: name 0x00002f51 hash +OBJC1_32BIT_EXE: types 0x00002f34 I8@0:4 +OBJC1_32BIT_EXE: list[17] +OBJC1_32BIT_EXE: name 0x00002f56 superclass +OBJC1_32BIT_EXE: types 0x00002df8 #8@0:4 +OBJC1_32BIT_EXE: list[18] +OBJC1_32BIT_EXE: name 0x00002f61 description +OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4 +OBJC1_32BIT_EXE: class_methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: instance_methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: class_methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_EXE: Contents of (__OBJC,__image_info) section +OBJC1_32BIT_EXE: version 0 +OBJC1_32BIT_EXE: flags 0x0 RR + +OBJC1_32BIT_OBJ: Objective-C segment +OBJC1_32BIT_OBJ: Module 0xb344 +OBJC1_32BIT_OBJ: version 7 +OBJC1_32BIT_OBJ: size 16 +OBJC1_32BIT_OBJ: name +OBJC1_32BIT_OBJ: symtab 0x0000b334 +OBJC1_32BIT_OBJ: sel_ref_cnt 0 +OBJC1_32BIT_OBJ: refs 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_OBJ: cls_def_cnt 1 +OBJC1_32BIT_OBJ: cat_def_cnt 0 +OBJC1_32BIT_OBJ: Class Definitions +OBJC1_32BIT_OBJ: defs[0] 0x0000b24c +OBJC1_32BIT_OBJ: isa 0x0000b2e4 +OBJC1_32BIT_OBJ: super_class 0x0000b2b8 NSViewController +OBJC1_32BIT_OBJ: name 0x0000b2c9 ViewController +OBJC1_32BIT_OBJ: version 0x00000000 +OBJC1_32BIT_OBJ: info 0x00000001 CLS_CLASS +OBJC1_32BIT_OBJ: instance_size 0x00000034 +OBJC1_32BIT_OBJ: ivars 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_OBJ: methods 0x0000b314 +OBJC1_32BIT_OBJ: obsolete 0x00000000 +OBJC1_32BIT_OBJ: method_count 2 +OBJC1_32BIT_OBJ: method_name 0x0000b27c viewDidLoad +OBJC1_32BIT_OBJ: method_types 0x0000b29e v8@0:4 +OBJC1_32BIT_OBJ: method_imp 0x00000000 -[ViewController viewDidLoad] +OBJC1_32BIT_OBJ: method_name 0x0000b288 setRepresentedObject: +OBJC1_32BIT_OBJ: method_types 0x0000b2a5 v12@0:4@8 +OBJC1_32BIT_OBJ: method_imp 0x00000050 -[ViewController setRepresentedObject:] +OBJC1_32BIT_OBJ: cache 0x00000000 +OBJC1_32BIT_OBJ: protocols 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_OBJ: Meta Class +OBJC1_32BIT_OBJ: isa 0x0000b2af NSObject +OBJC1_32BIT_OBJ: super_class 0x0000b2b8 NSViewController +OBJC1_32BIT_OBJ: name 0x0000b2c9 ViewController +OBJC1_32BIT_OBJ: version 0x00000000 +OBJC1_32BIT_OBJ: info 0x00000002 CLS_META +OBJC1_32BIT_OBJ: instance_size 0x00000030 +OBJC1_32BIT_OBJ: ivars 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_OBJ: methods 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_OBJ: cache 0x00000000 +OBJC1_32BIT_OBJ: protocols 0x00000000 (not in an __OBJC section) +OBJC1_32BIT_OBJ: Contents of (__OBJC,__image_info) section +OBJC1_32BIT_OBJ: version 0 +OBJC1_32BIT_OBJ: flags 0x0 RR + +PROTOCOL: Contents of (__OBJC,__protocol) section +PROTOCOL: Protocol 0x437c +PROTOCOL: isa 0x00003120 +PROTOCOL: protocol_name 0x000025af NSObject +PROTOCOL: protocol_list 0x00000000 (not in an __OBJC section) +PROTOCOL: instance_methods 0x00004290 +PROTOCOL: count 19 +PROTOCOL: list[0] +PROTOCOL: name 0x00002de9 isEqual: +PROTOCOL: types 0x000026e7 c12@0:4@8 +PROTOCOL: list[1] +PROTOCOL: name 0x00002df2 class +PROTOCOL: types 0x00002df8 #8@0:4 +PROTOCOL: list[2] +PROTOCOL: name 0x00002dff self +PROTOCOL: types 0x00002e04 @8@0:4 +PROTOCOL: list[3] +PROTOCOL: name 0x00002e0b performSelector: +PROTOCOL: types 0x00002e1c @12@0:4:8 +PROTOCOL: list[4] +PROTOCOL: name 0x00002e26 performSelector:withObject: +PROTOCOL: types 0x00002e42 @16@0:4:8@12 +PROTOCOL: list[5] +PROTOCOL: name 0x00002e4f performSelector:withObject:withObject: +PROTOCOL: types 0x00002e76 @20@0:4:8@12@16 +PROTOCOL: list[6] +PROTOCOL: name 0x00002e86 isProxy +PROTOCOL: types 0x00002e8e c8@0:4 +PROTOCOL: list[7] +PROTOCOL: name 0x00002e95 isKindOfClass: +PROTOCOL: types 0x00002ea4 c12@0:4#8 +PROTOCOL: list[8] +PROTOCOL: name 0x00002eae isMemberOfClass: +PROTOCOL: types 0x00002ea4 c12@0:4#8 +PROTOCOL: list[9] +PROTOCOL: name 0x00002ebf conformsToProtocol: +PROTOCOL: types 0x000026e7 c12@0:4@8 +PROTOCOL: list[10] +PROTOCOL: name 0x00002ee7 respondsToSelector: +PROTOCOL: types 0x00002efb c12@0:4:8 +PROTOCOL: list[11] +PROTOCOL: name 0x00002f05 retain +PROTOCOL: types 0x00002e04 @8@0:4 +PROTOCOL: list[12] +PROTOCOL: name 0x00002f0c release +PROTOCOL: types 0x00002f14 Vv8@0:4 +PROTOCOL: list[13] +PROTOCOL: name 0x00002f1c autorelease +PROTOCOL: types 0x00002e04 @8@0:4 +PROTOCOL: list[14] +PROTOCOL: name 0x00002f28 retainCount +PROTOCOL: types 0x00002f34 I8@0:4 +PROTOCOL: list[15] +PROTOCOL: name 0x00002f3b zone +PROTOCOL: types 0x00002f40 ^{_NSZone=}8@0:4 +PROTOCOL: list[16] +PROTOCOL: name 0x00002f51 hash +PROTOCOL: types 0x00002f34 I8@0:4 +PROTOCOL: list[17] +PROTOCOL: name 0x00002f56 superclass +PROTOCOL: types 0x00002df8 #8@0:4 +PROTOCOL: list[18] +PROTOCOL: name 0x00002f61 description +PROTOCOL: types 0x00002e04 @8@0:4 +PROTOCOL: class_methods 0x00000000 (not in an __OBJC section) +PROTOCOL: Protocol 0x4390 +PROTOCOL: isa 0x000030b0 +PROTOCOL: protocol_name 0x00002dd3 NSApplicationDelegate +PROTOCOL: protocol_list 0x000043a4 +PROTOCOL: next 0x00000000 +PROTOCOL: count 1 +PROTOCOL: list[0] 0x0000437c +PROTOCOL: isa 0x00003120 +PROTOCOL: protocol_name 0x000025af NSObject +PROTOCOL: protocol_list 0x00000000 (not in an __OBJC section) +PROTOCOL: instance_methods 0x00004290 +PROTOCOL: count 19 +PROTOCOL: list[0] +PROTOCOL: name 0x00002de9 isEqual: +PROTOCOL: types 0x000026e7 c12@0:4@8 +PROTOCOL: list[1] +PROTOCOL: name 0x00002df2 class +PROTOCOL: types 0x00002df8 #8@0:4 +PROTOCOL: list[2] +PROTOCOL: name 0x00002dff self +PROTOCOL: types 0x00002e04 @8@0:4 +PROTOCOL: list[3] +PROTOCOL: name 0x00002e0b performSelector: +PROTOCOL: types 0x00002e1c @12@0:4:8 +PROTOCOL: list[4] +PROTOCOL: name 0x00002e26 performSelector:withObject: +PROTOCOL: types 0x00002e42 @16@0:4:8@12 +PROTOCOL: list[5] +PROTOCOL: name 0x00002e4f performSelector:withObject:withObject: +PROTOCOL: types 0x00002e76 @20@0:4:8@12@16 +PROTOCOL: list[6] +PROTOCOL: name 0x00002e86 isProxy +PROTOCOL: types 0x00002e8e c8@0:4 +PROTOCOL: list[7] +PROTOCOL: name 0x00002e95 isKindOfClass: +PROTOCOL: types 0x00002ea4 c12@0:4#8 +PROTOCOL: list[8] +PROTOCOL: name 0x00002eae isMemberOfClass: +PROTOCOL: types 0x00002ea4 c12@0:4#8 +PROTOCOL: list[9] +PROTOCOL: name 0x00002ebf conformsToProtocol: +PROTOCOL: types 0x000026e7 c12@0:4@8 +PROTOCOL: list[10] +PROTOCOL: name 0x00002ee7 respondsToSelector: +PROTOCOL: types 0x00002efb c12@0:4:8 +PROTOCOL: list[11] +PROTOCOL: name 0x00002f05 retain +PROTOCOL: types 0x00002e04 @8@0:4 +PROTOCOL: list[12] +PROTOCOL: name 0x00002f0c release +PROTOCOL: types 0x00002f14 Vv8@0:4 +PROTOCOL: list[13] +PROTOCOL: name 0x00002f1c autorelease +PROTOCOL: types 0x00002e04 @8@0:4 +PROTOCOL: list[14] +PROTOCOL: name 0x00002f28 retainCount +PROTOCOL: types 0x00002f34 I8@0:4 +PROTOCOL: list[15] +PROTOCOL: name 0x00002f3b zone +PROTOCOL: types 0x00002f40 ^{_NSZone=}8@0:4 +PROTOCOL: list[16] +PROTOCOL: name 0x00002f51 hash +PROTOCOL: types 0x00002f34 I8@0:4 +PROTOCOL: list[17] +PROTOCOL: name 0x00002f56 superclass +PROTOCOL: types 0x00002df8 #8@0:4 +PROTOCOL: list[18] +PROTOCOL: name 0x00002f61 description +PROTOCOL: types 0x00002e04 @8@0:4 +PROTOCOL: class_methods 0x00000000 (not in an __OBJC section) +PROTOCOL: instance_methods 0x00000000 (not in an __OBJC section) +PROTOCOL: class_methods 0x00000000 (not in an __OBJC section) diff --git a/test/tools/llvm-objdump/X86/macho-private-headers.test b/test/tools/llvm-objdump/X86/macho-private-headers.test index c80bb083af374..ff45b1823fff2 100644 --- a/test/tools/llvm-objdump/X86/macho-private-headers.test +++ b/test/tools/llvm-objdump/X86/macho-private-headers.test @@ -19,6 +19,8 @@ // 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 -non-verbose %p/Inputs/hello.obj.macho-x86_64 \ +// RUN: | FileCheck %s -check-prefix=NON_VERBOSE CHECK: Mach header CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags @@ -443,3 +445,95 @@ 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 diff --git a/test/tools/llvm-objdump/X86/macho-relocations.test b/test/tools/llvm-objdump/X86/macho-relocations.test new file mode 100644 index 0000000000000..536aec8b1bcc9 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-relocations.test @@ -0,0 +1,7 @@ +RUN: llvm-objdump -macho -r %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s + +CHECK: RELOCATION RECORDS FOR [__text]: +CHECK: 0000000000000027 X86_64_RELOC_BRANCH _printf +CHECK: 000000000000000b X86_64_RELOC_SIGNED L_.str +CHECK: RELOCATION RECORDS FOR [__compact_unwind]: +CHECK: 0000000000000000 X86_64_RELOC_UNSIGNED __text diff --git a/test/tools/llvm-objdump/X86/macho-section-contents.test b/test/tools/llvm-objdump/X86/macho-section-contents.test new file mode 100644 index 0000000000000..f62b5a7b52dbb --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-section-contents.test @@ -0,0 +1,17 @@ +RUN: llvm-objdump -macho -s %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s + +CHECK: Contents of section __text: +CHECK: 0000 554889e5 4883ec20 488d0500 000000c7 UH..H.. H....... +CHECK: 0010 45fc0000 0000897d f8488975 f0488955 E......}.H.u.H.U +CHECK: 0020 e84889c7 b000e800 000000b9 00000000 .H.............. +CHECK: 0030 8945e489 c84883c4 205dc3 .E...H.. ]. +CHECK: Contents of section __cstring: +CHECK: 003b 48656c6c 6f20776f 726c640a 00 Hello world.. +CHECK: Contents of section __compact_unwind: +CHECK: 0048 00000000 00000000 3b000000 00000001 ........;....... +CHECK: 0058 00000000 00000000 00000000 00000000 ................ +CHECK: Contents of section __eh_frame: +CHECK: 0068 14000000 00000000 017a5200 01781001 .........zR..x.. +CHECK: 0078 100c0708 90010000 24000000 1c000000 ........$....... +CHECK: 0088 78ffffff ffffffff 3b000000 00000000 x.......;....... +CHECK: 0098 00410e10 8602430d 06000000 00000000 .A....C......... diff --git a/test/tools/llvm-objdump/X86/macho-section-headers.test b/test/tools/llvm-objdump/X86/macho-section-headers.test new file mode 100644 index 0000000000000..5159d1808228a --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-section-headers.test @@ -0,0 +1,8 @@ +RUN: llvm-objdump -macho -h %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s + +CHECK: Sections: +CHECK: Idx Name Size Address Type +CHECK: 0 __text 0000003b 0000000000000000 TEXT +CHECK: 1 __cstring 0000000d 000000000000003b DATA +CHECK: 2 __compact_unwind 00000020 0000000000000048 DATA +CHECK: 3 __eh_frame 00000040 0000000000000068 DATA diff --git a/test/tools/llvm-objdump/X86/macho-section.test b/test/tools/llvm-objdump/X86/macho-section.test new file mode 100644 index 0000000000000..e4d7857f1414d --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-section.test @@ -0,0 +1,8 @@ +// RUN: llvm-objdump -m -section __DATA,__mod_init_func %p/Inputs/dylibModInit.macho-x86_64 | FileCheck %s -check-prefix=MODINIT +// RUN: llvm-objdump -m -section __DATA,__mod_init_func -non-verbose %p/Inputs/dylibModInit.macho-x86_64 | FileCheck %s -check-prefix=NON_VERBOSE + +MODINIT: Contents of (__DATA,__mod_init_func) section +MODINIT: 0x0000000000001000 0x0000000000000f30 _libinit + +NON_VERBOSE: Contents of (__DATA,__mod_init_func) section +NON_VERBOSE: 0000000000001000 30 0f 00 00 00 00 00 00 diff --git a/test/tools/llvm-objdump/X86/macho-symbol-table.test b/test/tools/llvm-objdump/X86/macho-symbol-table.test new file mode 100644 index 0000000000000..3fe5aea6c3775 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-symbol-table.test @@ -0,0 +1,8 @@ +RUN: llvm-objdump -macho -t %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s + +CHECK: SYMBOL TABLE: +CHECK: 000000000000003b l F __TEXT,__cstring 00000000 L_.str +CHECK: 0000000000000068 l F __TEXT,__eh_frame 00000000 EH_frame0 +CHECK: 0000000000000000 g F __TEXT,__text 00000000 _main +CHECK: 0000000000000080 g F __TEXT,__eh_frame 00000000 _main.eh +CHECK: 0000000000000000 *UND* 00000000 _printf diff --git a/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test b/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test index 1e1080a30f066..6f49b456227ec 100644 --- a/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test +++ b/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test @@ -7,6 +7,9 @@ // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.obj.macho-i386 | FileCheck %s -check-prefix=i386-OBJ // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.exe.macho-i386 | FileCheck %s -check-prefix=i386-EXE +// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex -no-symbolic-operands %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NO-SYM-OPS-OBJ +// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex -no-symbolic-operands %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s -check-prefix=NO-SYM-OPS-EXE + OBJ: 0000000000000008 leaq L_.str(%rip), %rax ## literal pool for: "Hello world\n" OBJ: 0000000000000026 callq _printf @@ -36,3 +39,9 @@ CXX-EXE: 00000001000014cb callq __ZNSt3__116__pad_and_outputIcNS_11char_traitsIc i386-OBJ: 0000002f calll _printf i386-EXE: 00001f6f calll 0x1f84 ## symbol stub for: _printf + +NO-SYM-OPS-OBJ: 0000000000000008 leaq (%rip), %rax +NO-SYM-OPS-OBJ: 0000000000000026 callq 0x2b + +NO-SYM-OPS-EXE: 0000000100000f38 leaq 0x4f(%rip), %rax +NO-SYM-OPS-EXE: 0000000100000f56 callq 0x100000f6c diff --git a/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test b/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test index e4fd37a902c46..260e9aa341e8c 100644 --- a/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test +++ b/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test @@ -4,6 +4,8 @@ RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -d -m -no-show-r RUN: | FileCheck %s -check-prefix UArchive-i386 RUN: llvm-objdump %p/Inputs/macho-universal.x86_64.i386 -universal-headers -m \ RUN: | FileCheck %s -check-prefix FAT +RUN: llvm-objdump %p/Inputs/macho-universal.x86_64.i386 -universal-headers -m \ +RUN: -non-verbose | FileCheck %s -check-prefix NON-VERBOSE UEXE-all: macho-universal.x86_64.i386 (architecture x86_64): UEXE-all: (__TEXT,__text) section @@ -42,3 +44,21 @@ FAT: capabilities 0x0 FAT: offset 12288 FAT: size 4336 FAT: align 2^12 (4096) + +NON-VERBOSE: Fat headers +NON-VERBOSE: fat_magic 0xcafebabe +NON-VERBOSE: nfat_arch 2 +NON-VERBOSE: architecture 0 +NON-VERBOSE: cputype 16777223 +NON-VERBOSE: cpusubtype 3 +NON-VERBOSE: capabilities 0x80 +NON-VERBOSE: offset 4096 +NON-VERBOSE: size 4360 +NON-VERBOSE: align 2^12 (4096) +NON-VERBOSE: architecture 1 +NON-VERBOSE: cputype 7 +NON-VERBOSE: cpusubtype 3 +NON-VERBOSE: capabilities 0x0 +NON-VERBOSE: offset 12288 +NON-VERBOSE: size 4336 +NON-VERBOSE: align 2^12 (4096) diff --git a/test/tools/llvm-objdump/X86/macho-unwind-info.test b/test/tools/llvm-objdump/X86/macho-unwind-info.test new file mode 100644 index 0000000000000..33db84fc07d10 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-unwind-info.test @@ -0,0 +1,7 @@ +RUN: llvm-objdump -macho -u %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s + +CHECK: Contents of __compact_unwind section: +CHECK: Entry at offset 0x0: +CHECK: start: 0x0 _main +CHECK: length: 0x3b +CHECK: compact encoding: 0x01000000 diff --git a/test/tools/llvm-objdump/common-symbol-elf.test b/test/tools/llvm-objdump/common-symbol-elf.test new file mode 100644 index 0000000000000..32df05ac051b6 --- /dev/null +++ b/test/tools/llvm-objdump/common-symbol-elf.test @@ -0,0 +1,3 @@ +// RUN: llvm-objdump -t %p/Inputs/common-symbol-elf | FileCheck %s + +CHECK: 00000400 g *COM* 00000008 common_symbol diff --git a/test/tools/llvm-objdump/macho-sections.test b/test/tools/llvm-objdump/macho-sections.test new file mode 100644 index 0000000000000..31efd110a5c84 --- /dev/null +++ b/test/tools/llvm-objdump/macho-sections.test @@ -0,0 +1,5 @@ +# RUN: llvm-objdump -macho -section=__data %p/Inputs/bind2.macho-x86_64 | FileCheck %s +# RUN: llvm-objdump -macho -section=__data -raw %p/Inputs/bind2.macho-x86_64 | FileCheck --check-prefix=RAW %s + +# CHECK: bind2.macho-x86_64: +# RAW-NOT: bind2.macho-x86_64: diff --git a/test/tools/llvm-objdump/proc-specific-section-elf.test b/test/tools/llvm-objdump/proc-specific-section-elf.test new file mode 100644 index 0000000000000..b3067d49af8e4 --- /dev/null +++ b/test/tools/llvm-objdump/proc-specific-section-elf.test @@ -0,0 +1,3 @@ +// RUN: llvm-objdump -t %p/Inputs/proc-specific-section-elf | FileCheck %s + +CHECK: 00000000 *UND* 00000000 print |