================ @@ -754,23 +754,29 @@ const char *CommandObject::GetArgumentDescriptionAsCString( return g_argument_table[arg_type].help_text; } -Target &CommandObject::GetDummyTarget() { +Target &CommandObject::GetTarget(bool dummy) { + // Always return the dummy target if explicitly requested. + if (dummy) + return m_interpreter.GetDebugger().GetDummyTarget(); + + // Prefer the frozen execution context in the command object. + if (Target *target = m_exe_ctx.GetTargetPtr()) + return *target; + + // Fallback to the command interpreter's execution context in case we get + // called after DoExecute has finished. For example, when doing multi-line + // expression that uses an input reader or breakpoint callbacks. + if (Target *target = m_interpreter.GetExecutionContext().GetTargetPtr()) + return *target; + + // Finally, if we have no other target, get the selected target. + if (TargetSP target_sp = m_interpreter.GetDebugger().GetSelectedTarget()) + return *target_sp; + + // We only have the dummy target. ---------------- jimingham wrote:
Is it worth having that flag, since if you wanted ONLY the dummy target, you could still call GetDummyTarget. https://github.com/llvm/llvm-project/pull/101208 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits