1# -*- python -*- 2# DEBUG: cd %S/../../../../../examples/python && cat %s | %lldb && false 3# RUN: cd %S/../../../../../examples/python && cat %s | %lldb | FileCheck %s 4# CHECK-LABEL: {{S}}KIP BEYOND CHECKS 5script 6import crashlog 7crash_log_parser = crashlog.TextCrashLogParser 8crash_log = crashlog.CrashLog 9images = [ 10"0x10b60b000 - 0x10f707fff com.apple.LLDB.framework (1.1000.11.38.2 - 1000.11.38.2) <96E36F5C-1A83-39A1-8713-5FDD9701C3F1> /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/LLDB", 11# CHECK: 0x10b60b000 12# CHECK: 0x10f707fff 13# CHECK: com.apple.LLDB.framework 14# CHECK: 96E36F5C-1A83-39A1-8713-5FDD9701C3F1 15# CHECK: /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/LLDB 16 17"0x104591000 - 0x1055cfff7 +llvm-dwarfdump (0) <B104CFA1-046A-36A6-8EB4-07DDD7CC2DF3> /Users/USER 1/Documents/*/llvm-dwarfdump", 18# CHECK: 0x104591000 19# CHECK: 0x1055cfff7 20# CHECK: llvm-dwarfdump 21# CHECK: (0) 22# CHECK: B104CFA1-046A-36A6-8EB4-07DDD7CC2DF3 23# CHECK: /Users/USER 1/Documents/*/llvm-dwarfdump 24 25"0x7fff63f20000 - 0x7fff63f77ff7 libc++.1.dylib (400.9.4) <D4AB366F-48A9-3C7D-91BD-41198F69DD57> /usr/lib/libc++.1.dylib", 26# CHECK: 0x7fff63f20000 27# CHECK: 0x7fff63f77ff7 28# CHECK: libc++.1.dylib 29# CHECK: (400.9.4) 30# CHECK: D4AB366F-48A9-3C7D-91BD-41198F69DD57 31# CHECK: /usr/lib/libc++.1.dylib 32 33"0x1111111 - 0x22222 +MyApp Pro arm64 <01234> /tmp/MyApp Pro.app/MyApp Pro", 34# CHECK: 0x1111111 35# CHECK: 0x22222 36# CHECK: MyApp Pro 37# CHECK: arm64 38# CHECK: 01234 39# CHECK: /tmp/MyApp Pro.app/MyApp Pro 40 41"0x1111111 - 0x22222 +MyApp Pro (0) <01234> /tmp/MyApp Pro.app/MyApp Pro", 42# CHECK: 0x1111111 43# CHECK: 0x22222 44# CHECK: MyApp Pro 45# CHECK: (0) 46# CHECK: 01234 47# CHECK: /tmp/MyApp Pro.app/MyApp Pro 48 49"0x1111111 - 0x2222222 MyFramework Plus.dylib (1.11 - MyFramework 1.11) <01234> /tmp/MyFramework Plus.dylib", 50# CHECK: 0x1111111 51# CHECK: 0x2222222 52# CHECK: MyFramework Plus.dylib 53# CHECK: ({{.*}} 54# CHECK: 1.11 - MyFramework 1.11 55# CHECK: <{{.*}} 56# CHECK: 01234 57# CHECK: /tmp/MyFramework Plus.dylib 58 59"0x1111111 - 0x2222222 MyFramework-dev.dylib (1.0.0svn - 1.0.0svn) <01234> /MyFramework-dev.dylib", 60# CHECK: 0x1111111 61# CHECK: 0x2222222 62# CHECK: MyFramework-dev.dylib 63# CHECK: ({{.*}} 64# CHECK: 1.0.0svn - 1.0.0svn 65# CHECK: <{{.*}} 66# CHECK: 01234 67# CHECK: /MyFramework-dev.dylib 68 69"0x7fff63f20000 - 0x7fff63f77ff7 libc++.1.dylib (400.9.4) /usr/lib/libc++.1.dylib", 70# CHECK: 0x7fff63f20000 71# CHECK: 0x7fff63f77ff7 72# CHECK: libc++.1.dylib 73# CHECK: ({{.*}} 74# CHECK: 400.9.4 75# CHECK: None 76# CHECK: None 77# CHECK: /usr/lib/libc++.1.dylib 78 79"0x1047b8000 - 0x10481ffff dyld arm64e <cfa789d10da63f9a8996daf84ed9d04f> /usr/lib/dyld" 80# CHECK: 0x1047b8000 81# CHECK: 0x10481ffff 82# CHECK: dyld 83# CHECK: {{.*}} 84# CHECK: arm64e 85# CHECK: <{{.*}} 86# CHECK: cfa789d10da63f9a8996daf84ed9d04f 87# CHECK: /usr/lib/dyld 88] 89# CHECK-LABEL: FRAMES 90frames = [ 91"0 libsystem_kernel.dylib 0x00007fff684b78a6 read + 10", 92# CHECK: 0 93# CHECK: libsystem_kernel.dylib 94# CHECK: 0x00007fff684b78a6 95# CHECK: read + 10 96"1 com.apple.LLDB.framework 0x000000010f7954af lldb_private::HostNativeThreadBase::ThreadCreateTrampoline(void*) + 105", 97# CHECK: 1 98# CHECK: com.apple.LLDB.framework 99# CHECK: 0x000000010f7954af 100# CHECK: lldb_private{{.*}} + 105 101"2 MyApp Pro arm64 0x000000019b0db3a8 foo + 72", 102# CHECK: 2 103# CHECK: MyApp Pro 104# CHECK: a 105# CHECK: arm64 106# CHECK: a 107# CHECK: 0x000000019b0db3a8 108# CHECK: foo + 72 109"3 He 0x1 0x000000019b0db3a8 foo + 72" 110# CHECK: 3 111# CHECK: He 0x1 112# CHECK: 0x000000019b0db3a8 113# CHECK: foo + 72 114] 115 116 117# Avoid matching the text inside the input. 118print("SKIP BEYOND CHECKS") 119for image in images: 120 print('"%s"'%image) 121 print("--------------") 122 match = crash_log_parser.image_regex_uuid.search(image) 123 for group in match.groups(): 124 print(group) 125 126print("FRAMES") 127for frame in frames: 128 print('"%s"'%frame) 129 print("--------------") 130 match = crash_log_parser.frame_regex.search(frame) 131 for group in match.groups(): 132 print(group) 133 134exit() 135quit 136