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