[lldb/crashlog] Update frame regex matcher
authorMed Ismail Bennani <medismail.bennani@gmail.com>
Thu, 4 Aug 2022 17:34:41 +0000 (10:34 -0700)
committerMed Ismail Bennani <medismail.bennani@gmail.com>
Wed, 10 Aug 2022 04:01:37 +0000 (21:01 -0700)
This patch updates the regular expression matching stackframes in
crashlog to allow addresses that are 7 characters long and more (vs. 8
characters previously).

It changes the `0x[0-9a-fA-F]{7}[0-9a-fA-F]+` by `0x[0-9a-fA-F]{7,}`.

rdar://97684839

Differential Revision: https://reviews.llvm.org/D131032

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
lldb/examples/python/crashlog.py
lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash
lldb/test/Shell/ScriptInterpreter/Python/Crashlog/text.test

index 9da94b9..1d1f8ba 100755 (executable)
@@ -600,11 +600,11 @@ class TextCrashLogParser:
     thread_regex = re.compile('^Thread ([0-9]+)([^:]*):(.*)')
     app_backtrace_regex = re.compile('^Application Specific Backtrace ([0-9]+)([^:]*):(.*)')
     version = r'(\(.+\)|(arm|x86_)[0-9a-z]+)\s+'
-    frame_regex = re.compile(r'^([0-9]+)' r'\s'                # id
-                             r'+(.+?)'    r'\s+'               # img_name
-                             r'(' +version+ r')?'              # img_version
-                             r'(0x[0-9a-fA-F]{7}[0-9a-fA-F]+)' # addr
-                             r' +(.*)'                         # offs
+    frame_regex = re.compile(r'^([0-9]+)' r'\s+'                # id
+                             r'(.+?)' r'\s+'                    # img_name
+                             r'(' +version+ r')?'               # img_version
+                             r'(0x[0-9a-fA-F]{7,})'             # addr (7 chars or more)
+                             r' +(.*)'                          # offs
                             )
     null_frame_regex = re.compile(r'^([0-9]+)\s+\?\?\?\s+(0{7}0+) +(.*)')
     image_regex_uuid = re.compile(r'(0x[0-9a-fA-F]+)'            # img_lo
index 27ffd9e..c02150c 100644 (file)
@@ -31,7 +31,7 @@ Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
 0   a.out                              @foo@ foo + 16 (test.c:3)
 1   a.out                              @bar@ bar + 9 (test.c:6)
 2   a.out                              @main@ main + 20 (test.c:8)
-3   libdyld.dylib                      0x0000000100000000 start + 1
+3   libdyld.dylib                      0x1000000 start + 1
 
 Thread 0 crashed with X86 Thread State (64-bit):
   rax: 0x0000000000000000  rbx: 0x0000000000000000  rcx: 0x00007ffee42d81d0  rdx: 0x00007ffee42d8080
index 4e5e3fc..e9d1c5e 100644 (file)
@@ -9,4 +9,5 @@
 # CHECK: [  0] {{.*}}out`foo + 16 at test.c
 # CHECK: [  1] {{.*}}out`bar + 8 at test.c
 # CHECK: [  2] {{.*}}out`main + 19 at test.c
+# CHECK: [  3] 0x{{[0]+}}1000000 start + 1
 # CHECK: rbp = 0x00007ffee42d8020