aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectProcess.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Commands/CommandObjectProcess.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectProcess.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp
index b3e2f6a..f3d20b3 100644
--- a/lldb/source/Commands/CommandObjectProcess.cpp
+++ b/lldb/source/Commands/CommandObjectProcess.cpp
@@ -398,9 +398,10 @@ protected:
}
StreamString stream;
+ ProcessSP process_sp;
const auto error = target->Attach(m_options.attach_info, &stream);
if (error.Success()) {
- ProcessSP process_sp(target->GetProcessSP());
+ process_sp = target->GetProcessSP();
if (process_sp) {
result.AppendMessage(stream.GetString());
result.SetStatus(eReturnStatusSuccessFinishNoResult);
@@ -452,8 +453,13 @@ protected:
// This supports the use-case scenario of immediately continuing the
// process once attached.
- if (m_options.attach_info.GetContinueOnceAttached())
- m_interpreter.HandleCommand("process continue", eLazyBoolNo, result);
+ if (m_options.attach_info.GetContinueOnceAttached()) {
+ // We have made a process but haven't told the interpreter about it yet,
+ // so CheckRequirements will fail for "process continue". Set the override
+ // here:
+ ExecutionContext exe_ctx(process_sp);
+ m_interpreter.HandleCommand("process continue", eLazyBoolNo, exe_ctx, result);
+ }
return result.Succeeded();
}