REQUIRES: system-darwin RUN: dsymutil --symbol-map %p/../Inputs/obfuscated.map %p/../Inputs/obfuscated.arm64 -f -o - \ RUN: | llvm-dwarfdump -v - \ RUN: | FileCheck %s RUN: dsymutil --accelerator=Pub --symbol-map %p/../Inputs/obfuscated.map %p/../Inputs/obfuscated.arm64 -f -o - \ RUN: | llvm-dwarfdump -v - \ RUN: | FileCheck --check-prefix=PUB %s RUN: dsymutil --symbol-map %p/../Inputs/obfuscated.map %p/../Inputs/obfuscated.arm64 -f -o - \ RUN: | llvm-dwarfdump -v - \ RUN: | FileCheck --check-prefix=NOHIDDEN %s RUN: dsymutil --symbol-map %p/../Inputs/obfuscated.2.map %p/../Inputs/obfuscated.2.arm64 -f -o - \ RUN: | llvm-dwarfdump -v - \ RUN: | FileCheck --check-prefix=NOHIDDEN %s // Run with plist and make sure dsymutil finds it. RUN: mkdir -p %t.dSYM/Contents/Resources/DWARF/ RUN: mkdir -p %t.mapdir RUN: cp %p/../Inputs/obfuscated.arm64 %t.dSYM/Contents/Resources/DWARF/ RUN: cp %p/../Inputs/E828A486-8433-3A5E-B6DB-A6294D28133D.plist %t.dSYM/Contents/Resources/ RUN: cp %p/../Inputs/obfuscated.map %t.mapdir/506AA50A-6B26-3B37-86D2-DC6EBD57B720.bcsymbolmap RUN: dsymutil --symbol-map %t.mapdir %t.dSYM 2>&1 | FileCheck --check-prefix=OBFUSCATING %s // Run without plist and make sure dsymutil doesn't crash. RUN: rm %t.dSYM/Contents/Resources/E828A486-8433-3A5E-B6DB-A6294D28133D.plist RUN: dsymutil --symbol-map %t.mapdir %t.dSYM 2>&1 | FileCheck --check-prefix=NOTOBFUSCATING %s OBFUSCATING-NOT: not unobfuscating NOTOBFUSCATING: not unobfuscating NOHIDDEN-NOT: __hidden# CHECK: .debug_info contents: CHECK: DW_TAG_compile_unit [1] * CHECK: DW_AT_producer [DW_FORM_strp] ( {{.*}} "Apple LLVM version 7.0.0 (clang-700.2.38.2)") CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "main.c") CHECK: DW_AT_comp_dir [DW_FORM_strp] ( {{.*}} "/Users/steven/dev/alpena/tests/src") CHECK: DW_TAG_subprogram [2] CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "main") CHECK: DW_TAG_compile_unit [1] * CHECK: DW_AT_producer [DW_FORM_strp] ( {{.*}} "Apple LLVM version 7.0.0 (clang-700.2.38.2)") CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "one.c") CHECK: DW_AT_comp_dir [DW_FORM_strp] ( {{.*}} "/Users/steven/dev/alpena/tests/src") CHECK: DW_TAG_subprogram [2] CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "one") CHECK: DW_TAG_compile_unit [1] * CHECK: DW_AT_producer [DW_FORM_strp] ( {{.*}} "Apple LLVM version 7.0.0 (clang-700.2.38.2)") CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "two.c") CHECK: DW_AT_comp_dir [DW_FORM_strp] ( {{.*}} "/Users/steven/dev/alpena/tests/src") CHECK: DW_TAG_subprogram [2] CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "two") CHECK: DW_TAG_compile_unit [1] * CHECK: DW_AT_producer [DW_FORM_strp] ( {{.*}} "Apple LLVM version 7.0.0 (clang-700.2.38.2)") CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "three.c") CHECK: DW_AT_comp_dir [DW_FORM_strp] ( {{.*}} "/Users/steven/dev/alpena/tests/src") CHECK: DW_TAG_subprogram [2] CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "three") CHECK: DW_TAG_compile_unit [1] * CHECK: DW_AT_producer [DW_FORM_strp] ( {{.*}} "Apple LLVM version 7.0.0 (clang-700.2.38.2)") CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "four.c") CHECK: DW_AT_stmt_list [DW_FORM_data4] (0x0000011e) CHECK: DW_AT_comp_dir [DW_FORM_strp] ( {{.*}} "/Users/steven/dev/alpena/tests/src") CHECK: DW_TAG_subprogram [2] CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "four") CHECK: DW_TAG_compile_unit [1] * CHECK: DW_AT_producer [DW_FORM_strp] ( {{.*}} "Apple LLVM version 7.0.0 (clang-700.2.38.2)") CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "five.c") CHECK: DW_AT_comp_dir [DW_FORM_strp] ( {{.*}} "/Users/steven/dev/alpena/tests/src") CHECK: DW_TAG_subprogram [2] CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "five") CHECK: DW_TAG_compile_unit [1] * CHECK: DW_AT_producer [DW_FORM_strp] ( {{.*}} "Apple LLVM version 7.0.0 (clang-700.2.38.2)") CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "six.c") CHECK: DW_AT_comp_dir [DW_FORM_strp] ( {{.*}} "/Users/steven/dev/alpena/tests/src") CHECK: DW_TAG_subprogram [2] CHECK: DW_AT_name [DW_FORM_strp] ( {{.*}} "six") CHECK: .debug_line contents: CHECK: file_names[ 1]: CHECK: name: "main.c" CHECK: dir_index: 0 CHECK: mod_time: 0x00000000 CHECK: file_names[ 1]: CHECK: name: "one.c" CHECK: dir_index: 0 CHECK: mod_time: 0x00000000 CHECK: length: 0x00000000 CHECK: file_names[ 1]: CHECK: name: "two.c" CHECK: dir_index: 0 CHECK: mod_time: 0x00000000 CHECK: length: 0x00000000 CHECK: file_names[ 1]: CHECK: name: "three.c" CHECK: dir_index: 0 CHECK: mod_time: 0x00000000 CHECK: length: 0x00000000 CHECK: file_names[ 1]: CHECK: name: "four.c" CHECK: dir_index: 0 CHECK: mod_time: 0x00000000 CHECK: length: 0x00000000 CHECK: file_names[ 1]: CHECK: name: "five.c" CHECK: dir_index: 0 CHECK: mod_time: 0x00000000 CHECK: length: 0x00000000 CHECK: file_names[ 1]: CHECK: name: "six.c" CHECK: dir_index: 0 CHECK: mod_time: 0x00000000 CHECK: length: 0x00000000 PUB: .debug_pubnames contents: PUB: length = 0x00000017, format = DWARF32, version = 0x0002, unit_offset = 0x00000000, unit_size = 0x00000044 PUB: 0x0000002e "main" PUB: length = 0x00000016, format = DWARF32, version = 0x0002, unit_offset = 0x00000044, unit_size = 0x00000044 PUB: 0x0000002e "one" PUB: length = 0x00000016, format = DWARF32, version = 0x0002, unit_offset = 0x00000088, unit_size = 0x00000044 PUB: 0x0000002e "two" PUB: length = 0x00000018, format = DWARF32, version = 0x0002, unit_offset = 0x000000cc, unit_size = 0x00000044 PUB: 0x0000002e "three" PUB: length = 0x00000017, format = DWARF32, version = 0x0002, unit_offset = 0x00000110, unit_size = 0x00000044 PUB: 0x0000002e "four" PUB: length = 0x00000017, format = DWARF32, version = 0x0002, unit_offset = 0x00000154, unit_size = 0x00000044 PUB: 0x0000002e "five" PUB: length = 0x00000016, format = DWARF32, version = 0x0002, unit_offset = 0x00000198, unit_size = 0x00000044 PUB: 0x0000002e "six" CHECK: .apple_names contents: CHECK: String: 0x00000091 "five" CHECK-NEXT: Data 0 [ CHECK-NEXT: Atom[0]: 0x00000182 CHECK-NEXT: ] CHECK: String: 0x0000009c "six" CHECK-NEXT: Data 0 [ CHECK-NEXT: Atom[0]: 0x000001c6 CHECK-NEXT: ] CHECK: String: 0x00000078 "three" CHECK-NEXT: Data 0 [ CHECK-NEXT: Atom[0]: 0x000000fa CHECK-NEXT: ] CHECK: String: 0x0000006c "two" CHECK-NEXT: Data 0 [ CHECK-NEXT: Atom[0]: 0x000000b6 CHECK-NEXT: ] CHECK: String: 0x00000057 "main" CHECK-NEXT: Data 0 [ CHECK-NEXT: Atom[0]: 0x0000002e CHECK-NEXT: ] CHECK: String: 0x00000085 "four" CHECK-NEXT: Data 0 [ CHECK-NEXT: Atom[0]: 0x0000013e CHECK-NEXT: ] CHECK: String: 0x00000062 "one" CHECK-NEXT: Data 0 [ CHECK-NEXT: Atom[0]: 0x00000072 CHECK-NEXT: ]