[Lldb-commits] [lldb] 3bc0baf - [lldb/crashlog] Expand crash report file path before parsing

Med Ismail Bennani via lldb-commits lldb-commits at lists.llvm.org
Tue Jun 6 10:58:54 PDT 2023


Author: Med Ismail Bennani
Date: 2023-06-06T10:58:34-07:00
New Revision: 3bc0baf9d43967d828e2d311f6c0863e79158f07

URL: https://github.com/llvm/llvm-project/commit/3bc0baf9d43967d828e2d311f6c0863e79158f07
DIFF: https://github.com/llvm/llvm-project/commit/3bc0baf9d43967d828e2d311f6c0863e79158f07.diff

LOG: [lldb/crashlog] Expand crash report file path before parsing

This patch should fix a crash in the opening a crash report that was
passed with a relative path.

This patch expands the crash report path before parsing it and raises a
`FileNotFoundError` exception if the file doesn't exist.

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

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>

Added: 
    

Modified: 
    lldb/examples/python/crashlog.py

Removed: 
    


################################################################################
diff  --git a/lldb/examples/python/crashlog.py b/lldb/examples/python/crashlog.py
index 4a14e99bea10e..36825b077c6a0 100755
--- a/lldb/examples/python/crashlog.py
+++ b/lldb/examples/python/crashlog.py
@@ -1346,13 +1346,7 @@ def add_module(image, target, obj_dir):
             print(error)
 
 
-def load_crashlog_in_scripted_process(debugger, crash_log_file, options, result):
-    crashlog_path = os.path.expanduser(crash_log_file)
-    if not os.path.exists(crashlog_path):
-        raise InteractiveCrashLogException(
-            "crashlog file %s does not exist" % crashlog_path
-        )
-
+def load_crashlog_in_scripted_process(debugger, crashlog_path, options, result):
     crashlog = CrashLogParser.create(debugger, crashlog_path, False).parse()
 
     target = lldb.SBTarget()
@@ -1641,17 +1635,22 @@ def should_run_in_interactive_mode(options, ci):
     ci = debugger.GetCommandInterpreter()
 
     if args:
-        for crash_log_file in args:
+        for crashlog_file in args:
+            crashlog_path = os.path.expanduser(crashlog_file)
+            if not os.path.exists(crashlog_path):
+                raise FileNotFoundError(
+                    "crashlog file %s does not exist" % crashlog_path
+                )
             if should_run_in_interactive_mode(options, ci):
                 try:
                     load_crashlog_in_scripted_process(
-                        debugger, crash_log_file, options, result
+                        debugger, crashlog_path, options, result
                     )
                 except InteractiveCrashLogException as e:
                     result.SetError(str(e))
             else:
                 crash_log = CrashLogParser.create(
-                    debugger, crash_log_file, options.verbose
+                    debugger, crashlog_path, options.verbose
                 ).parse()
                 SymbolicateCrashLog(crash_log, options)
 


        


More information about the lldb-commits mailing list