From 3bc0baf9d43967d828e2d311f6c0863e79158f07 Mon Sep 17 00:00:00 2001 From: Med Ismail Bennani Date: Fri, 2 Jun 2023 10:39:41 -0700 Subject: [PATCH] [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 --- lldb/examples/python/crashlog.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lldb/examples/python/crashlog.py b/lldb/examples/python/crashlog.py index 4a14e99..36825b0 100755 --- a/lldb/examples/python/crashlog.py +++ b/lldb/examples/python/crashlog.py @@ -1346,13 +1346,7 @@ def SymbolicateCrashLog(crash_log, options): 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 SymbolicateCrashLogs(debugger, command_args, result): 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) -- 2.7.4