Author: Jason Molenda Date: 2022-04-26T18:32:18-07:00 New Revision: a2681c43308c5d1748a7ade4df5188972a3dd8aa
URL: https://github.com/llvm/llvm-project/commit/a2681c43308c5d1748a7ade4df5188972a3dd8aa DIFF: https://github.com/llvm/llvm-project/commit/a2681c43308c5d1748a7ade4df5188972a3dd8aa.diff LOG: Don't push null ExecutionContext on CommandInterp exectx stack The driver can push a null ExecutionContext on to this stack, and later calls to SBCommandInterpreter::HandleCommand which don't specify an ExecutionContext can pull an entry from the stack, resulting in settings that aren't applied. Differential Revision: https://reviews.llvm.org/D111209 rdar://81489207 Added: Modified: lldb/source/Interpreter/CommandInterpreter.cpp Removed: ################################################################################ diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp index 760a33ac09295..c779795509a22 100644 --- a/lldb/source/Interpreter/CommandInterpreter.cpp +++ b/lldb/source/Interpreter/CommandInterpreter.cpp @@ -3050,9 +3050,15 @@ void CommandInterpreter::IOHandlerInputComplete(IOHandler &io_handler, StartHandlingCommand(); - OverrideExecutionContext(m_debugger.GetSelectedExecutionContext()); - auto finalize = llvm::make_scope_exit([this]() { - RestoreExecutionContext(); + ExecutionContext exe_ctx = m_debugger.GetSelectedExecutionContext(); + bool pushed_exe_ctx = false; + if (exe_ctx.HasTargetScope()) { + OverrideExecutionContext(exe_ctx); + pushed_exe_ctx = true; + } + auto finalize = llvm::make_scope_exit([this, pushed_exe_ctx]() { + if (pushed_exe_ctx) + RestoreExecutionContext(); }); lldb_private::CommandReturnObject result(m_debugger.GetUseColor()); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits