From 3e8c1c4fc48a286dd546899a7374dce680633d93 Mon Sep 17 00:00:00 2001 From: Med Ismail Bennani Date: Fri, 4 Nov 2022 14:49:52 -0700 Subject: [PATCH] [lldb/crashlog] Fix frame parser regex for when there is no source info It can happen that the originator of a crash report doesn't have access to certain images. When that's the case, ReportCrash won't show the source info in the crash report stack frames, but only the stack address and image name. This patch fixes a bug in the crashlog stackframe parser regular expression to optionally match the source info group. rdar://101934135 Differential Revision: https://reviews.llvm.org/D137466 Signed-off-by: Med Ismail Bennani --- lldb/examples/python/crashlog.py | 2 +- lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lldb/examples/python/crashlog.py b/lldb/examples/python/crashlog.py index 47250f3..c3a450c 100755 --- a/lldb/examples/python/crashlog.py +++ b/lldb/examples/python/crashlog.py @@ -645,7 +645,7 @@ class TextCrashLogParser(CrashLogParser): r'(.+?)\s+' # img_name r'(?:' +version+ r'\s+)?' # img_version r'(0x[0-9a-fA-F]{4,})' # addr (4 chars or more) - r' +(.*)' # offs + r'(?: +(.*))?' # offs ) null_frame_regex = re.compile(r'^\d+\s+\?\?\?\s+0{4,} +') image_regex_uuid = re.compile(r'(0x[0-9a-fA-F]+)' # img_lo diff --git a/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash b/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash index 16a9558..4361ed5 100644 --- a/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash +++ b/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash @@ -29,7 +29,7 @@ Terminating Process: exc handler [21606] 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) +1 a.out @bar@ 2 a.out @main@ main + 20 (test.c:8) 3 libdyld.dylib 0x1000000 start + 1 -- 2.7.4