Skip to content

Commit 2f65e10

Browse files
committed
[lldb] Store the dummy target in the selected exeuction context
1 parent 68fd102 commit 2f65e10

File tree

3 files changed

+22
-25
lines changed

3 files changed

+22
-25
lines changed

lldb/source/Core/Debugger.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,8 +1221,8 @@ void Debugger::RedrawStatusline(bool update) {
12211221
}
12221222

12231223
ExecutionContext Debugger::GetSelectedExecutionContext() {
1224-
bool adopt_selected = true;
1225-
ExecutionContextRef exe_ctx_ref(GetSelectedTarget().get(), adopt_selected);
1224+
ExecutionContextRef exe_ctx_ref(&GetSelectedOrDummyTarget(),
1225+
/*adopt_selected=*/true);
12261226
return ExecutionContext(exe_ctx_ref);
12271227
}
12281228

lldb/source/Core/Statusline.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,7 @@ void Statusline::Redraw(bool update) {
134134
}
135135

136136
ExecutionContext exe_ctx = m_debugger.GetSelectedExecutionContext();
137-
138-
// For colors and progress events, the format entity needs access to the
139-
// debugger, which requires a target in the execution context.
140-
if (!exe_ctx.HasTargetScope())
141-
exe_ctx.SetTargetPtr(&m_debugger.GetSelectedOrDummyTarget());
137+
assert(exe_ctx.HasTargetScope() && "format entity needs a target");
142138

143139
SymbolContext symbol_ctx;
144140
if (ProcessSP process_sp = exe_ctx.GetProcessSP()) {

lldb/source/Interpreter/CommandObject.cpp

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,11 @@ bool CommandObject::CheckRequirements(CommandReturnObject &result) {
147147
// we don't want any CommandObject instances to keep any of these objects
148148
// around longer than for a single command. Every command should call
149149
// CommandObject::Cleanup() after it has completed.
150-
assert(!m_exe_ctx.GetTargetPtr());
151-
assert(!m_exe_ctx.GetProcessPtr());
152-
assert(!m_exe_ctx.GetThreadPtr());
153-
assert(!m_exe_ctx.GetFramePtr());
150+
assert(!m_exe_ctx.HasTargetScope() ||
151+
m_exe_ctx.GetTargetRef().IsDummyTarget());
152+
assert(!m_exe_ctx.HasProcessScope());
153+
assert(!m_exe_ctx.HasThreadScope());
154+
assert(!m_exe_ctx.HasFrameScope());
154155

155156
// Lock down the interpreter's execution context prior to running the command
156157
// so we guarantee the selected target, process, thread and frame can't go
@@ -312,7 +313,7 @@ void CommandObject::HandleArgumentCompletion(
312313
assert(entry_ptr && "We said there was one entry, but there wasn't.");
313314
return; // Not worth crashing if asserts are off...
314315
}
315-
316+
316317
CommandArgumentEntry &entry = *entry_ptr;
317318
// For now, we only handle the simple case of one homogenous argument type.
318319
if (entry.size() != 1)
@@ -495,21 +496,21 @@ bool CommandObject::IsPairType(ArgumentRepetitionType arg_repeat_type) {
495496
(arg_repeat_type == eArgRepeatPairRangeOptional);
496497
}
497498

498-
std::optional<ArgumentRepetitionType>
499+
std::optional<ArgumentRepetitionType>
499500
CommandObject::ArgRepetitionFromString(llvm::StringRef string) {
500501
return llvm::StringSwitch<ArgumentRepetitionType>(string)
501-
.Case("plain", eArgRepeatPlain)
502-
.Case("optional", eArgRepeatOptional)
503-
.Case("plus", eArgRepeatPlus)
504-
.Case("star", eArgRepeatStar)
505-
.Case("range", eArgRepeatRange)
506-
.Case("pair-plain", eArgRepeatPairPlain)
507-
.Case("pair-optional", eArgRepeatPairOptional)
508-
.Case("pair-plus", eArgRepeatPairPlus)
509-
.Case("pair-star", eArgRepeatPairStar)
510-
.Case("pair-range", eArgRepeatPairRange)
511-
.Case("pair-range-optional", eArgRepeatPairRangeOptional)
512-
.Default({});
502+
.Case("plain", eArgRepeatPlain)
503+
.Case("optional", eArgRepeatOptional)
504+
.Case("plus", eArgRepeatPlus)
505+
.Case("star", eArgRepeatStar)
506+
.Case("range", eArgRepeatRange)
507+
.Case("pair-plain", eArgRepeatPairPlain)
508+
.Case("pair-optional", eArgRepeatPairOptional)
509+
.Case("pair-plus", eArgRepeatPairPlus)
510+
.Case("pair-star", eArgRepeatPairStar)
511+
.Case("pair-range", eArgRepeatPairRange)
512+
.Case("pair-range-optional", eArgRepeatPairRangeOptional)
513+
.Default({});
513514
}
514515

515516
static CommandObject::CommandArgumentEntry

0 commit comments

Comments
 (0)