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: 01234 56*c7cbf32fSJonas Devlieghere# CHECK: /tmp/MyFramework Plus.dylib 57*c7cbf32fSJonas Devlieghere 58*c7cbf32fSJonas Devlieghere"0x1111111 - 0x2222222 MyFramework-dev.dylib (1.0.0svn - 1.0.0svn) <01234> /MyFramework-dev.dylib", 59*c7cbf32fSJonas Devlieghere# CHECK: 0x1111111 60*c7cbf32fSJonas Devlieghere# CHECK: 0x2222222 61*c7cbf32fSJonas Devlieghere# CHECK: MyFramework-dev.dylib 62*c7cbf32fSJonas Devlieghere# CHECK: ({{.*}} 63*c7cbf32fSJonas Devlieghere# CHECK: 1.0.0svn - 1.0.0svn 64*c7cbf32fSJonas Devlieghere# CHECK: 01234 65*c7cbf32fSJonas Devlieghere# CHECK: /MyFramework-dev.dylib 66*c7cbf32fSJonas Devlieghere 67*c7cbf32fSJonas Devlieghere"0x7fff63f20000 - 0x7fff63f77ff7 libc++.1.dylib (400.9.4) /usr/lib/libc++.1.dylib", 68*c7cbf32fSJonas Devlieghere# CHECK: 0x7fff63f20000 69*c7cbf32fSJonas Devlieghere# CHECK: 0x7fff63f77ff7 70*c7cbf32fSJonas Devlieghere# CHECK: libc++.1.dylib 71*c7cbf32fSJonas Devlieghere# CHECK: ({{.*}} 72*c7cbf32fSJonas Devlieghere# CHECK: 400.9.4 73*c7cbf32fSJonas Devlieghere# CHECK: None 74*c7cbf32fSJonas Devlieghere# CHECK: /usr/lib/libc++.1.dylib 75*c7cbf32fSJonas Devlieghere 76*c7cbf32fSJonas Devlieghere"0x1047b8000 - 0x10481ffff dyld arm64e <cfa789d10da63f9a8996daf84ed9d04f> /usr/lib/dyld" 77*c7cbf32fSJonas Devlieghere# CHECK: 0x1047b8000 78*c7cbf32fSJonas Devlieghere# CHECK: 0x10481ffff 79*c7cbf32fSJonas Devlieghere# CHECK: dyld 80*c7cbf32fSJonas Devlieghere# CHECK: {{.*}} 81*c7cbf32fSJonas Devlieghere# CHECK: arm64e 82*c7cbf32fSJonas Devlieghere# CHECK: cfa789d10da63f9a8996daf84ed9d04f 83*c7cbf32fSJonas Devlieghere# CHECK: /usr/lib/dyld 84*c7cbf32fSJonas Devlieghere] 85*c7cbf32fSJonas Devlieghere# CHECK-LABEL: FRAMES 86*c7cbf32fSJonas Devlieghereframes = [ 87*c7cbf32fSJonas Devlieghere"0 libsystem_kernel.dylib 0x00007fff684b78a6 read + 10", 88*c7cbf32fSJonas Devlieghere# CHECK: 0 89*c7cbf32fSJonas Devlieghere# CHECK: libsystem_kernel.dylib 90*c7cbf32fSJonas Devlieghere# CHECK: 0x00007fff684b78a6 91*c7cbf32fSJonas Devlieghere# CHECK: read + 10 92*c7cbf32fSJonas Devlieghere"1 com.apple.LLDB.framework 0x000000010f7954af lldb_private::HostNativeThreadBase::ThreadCreateTrampoline(void*) + 105", 93*c7cbf32fSJonas Devlieghere# CHECK: 1 94*c7cbf32fSJonas Devlieghere# CHECK: com.apple.LLDB.framework 95*c7cbf32fSJonas Devlieghere# CHECK: 0x000000010f7954af 96*c7cbf32fSJonas Devlieghere# CHECK: lldb_private{{.*}} + 105 97*c7cbf32fSJonas Devlieghere"2 MyApp Pro arm64 0x000000019b0db3a8 foo + 72", 98*c7cbf32fSJonas Devlieghere# CHECK: 2 99*c7cbf32fSJonas Devlieghere# CHECK: MyApp Pro 100*c7cbf32fSJonas Devlieghere# CHECK: 0x000000019b0db3a8 101*c7cbf32fSJonas Devlieghere# CHECK: foo + 72 102*c7cbf32fSJonas Devlieghere"3 He 0x1 0x000000019b0db3a8 foo + 72" 103*c7cbf32fSJonas Devlieghere# CHECK: 3 104*c7cbf32fSJonas Devlieghere# CHECK: He 0x1 105*c7cbf32fSJonas Devlieghere# CHECK: 0x000000019b0db3a8 106*c7cbf32fSJonas Devlieghere# CHECK: foo + 72 107*c7cbf32fSJonas Devlieghere] 108*c7cbf32fSJonas Devlieghere 109*c7cbf32fSJonas Devlieghere 110*c7cbf32fSJonas Devlieghere# Avoid matching the text inside the input. 111*c7cbf32fSJonas Devlieghereprint("SKIP BEYOND CHECKS") 112*c7cbf32fSJonas Devliegherefor image in images: 113*c7cbf32fSJonas Devlieghere print('"%s"'%image) 114*c7cbf32fSJonas Devlieghere print("--------------") 115*c7cbf32fSJonas Devlieghere match = crash_log_parser.image_regex_uuid.search(image) 116*c7cbf32fSJonas Devlieghere for group in match.groups(): 117*c7cbf32fSJonas Devlieghere print(group) 118*c7cbf32fSJonas Devlieghere 119*c7cbf32fSJonas Devlieghereprint("FRAMES") 120*c7cbf32fSJonas Devliegherefor frame in frames: 121*c7cbf32fSJonas Devlieghere print('"%s"'%frame) 122*c7cbf32fSJonas Devlieghere print("--------------") 123*c7cbf32fSJonas Devlieghere match = crash_log_parser.frame_regex.search(frame) 124*c7cbf32fSJonas Devlieghere for group in match.groups(): 125*c7cbf32fSJonas Devlieghere print(group) 126*c7cbf32fSJonas Devlieghere 127*c7cbf32fSJonas Devlieghereexit() 128*c7cbf32fSJonas Devliegherequit 129