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