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

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.

Signed-off-by: Med Ismail Bennani <ism...@bennani.ma>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D152012

Files:
  lldb/examples/python/crashlog.py


Index: lldb/examples/python/crashlog.py
===================================================================
--- lldb/examples/python/crashlog.py
+++ lldb/examples/python/crashlog.py
@@ -1346,13 +1346,7 @@
             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 @@
     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)
 


Index: lldb/examples/python/crashlog.py
===================================================================
--- lldb/examples/python/crashlog.py
+++ lldb/examples/python/crashlog.py
@@ -1346,13 +1346,7 @@
             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 @@
     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)
 
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to