[Lldb-commits] [PATCH] D137466: [lldb/crashlog] Fix frame parser regex for when there is no source info

Med Ismail Bennani via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 4 14:49:50 PDT 2022


mib created this revision.
mib added reviewers: kastiglione, JDevlieghere.
mib added a project: LLDB.
Herald added a project: All.
mib requested review of this revision.
Herald added a subscriber: lldb-commits.

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

Signed-off-by: Med Ismail Bennani <medismail.bennani at gmail.com>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D137466

Files:
  lldb/examples/python/crashlog.py
  lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash


Index: lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash
===================================================================
--- lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash
+++ lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.crash
@@ -29,7 +29,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)
+1   a.out                         	@bar@
 2   a.out                         	@main@ main + 20 (test.c:8)
 3   libdyld.dylib                 	0x1000000 start + 1
 
Index: lldb/examples/python/crashlog.py
===================================================================
--- lldb/examples/python/crashlog.py
+++ lldb/examples/python/crashlog.py
@@ -645,7 +645,7 @@
                              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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D137466.473345.patch
Type: text/x-patch
Size: 1368 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20221104/4c32ae32/attachment-0001.bin>


More information about the lldb-commits mailing list