aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/lldb/source/Target/Thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/lldb/source/Target/Thread.cpp')
-rw-r--r--contrib/llvm-project/lldb/source/Target/Thread.cpp32
1 files changed, 21 insertions, 11 deletions
diff --git a/contrib/llvm-project/lldb/source/Target/Thread.cpp b/contrib/llvm-project/lldb/source/Target/Thread.cpp
index 24cf4bf3ee1e..049e458d8b19 100644
--- a/contrib/llvm-project/lldb/source/Target/Thread.cpp
+++ b/contrib/llvm-project/lldb/source/Target/Thread.cpp
@@ -1103,6 +1103,22 @@ void Thread::DiscardPlan() {
discarded_plan_sp->GetThread().GetID());
}
+void Thread::AutoCompleteThreadPlans(CompletionRequest &request) const {
+ const ThreadPlanStack &plans = GetPlans();
+ if (!plans.AnyPlans())
+ return;
+
+ // Iterate from the second plan (index: 1) to skip the base plan.
+ ThreadPlanSP p;
+ uint32_t i = 1;
+ while ((p = plans.GetPlanByIndex(i, false))) {
+ StreamString strm;
+ p->GetDescription(&strm, eDescriptionLevelInitial);
+ request.TryCompleteCurrentArg(std::to_string(i), strm.GetString());
+ i++;
+ }
+}
+
ThreadPlan *Thread::GetCurrentPlan() const {
return GetPlans().GetCurrentPlan().get();
}
@@ -1380,7 +1396,7 @@ lldb::ThreadPlanSP Thread::QueueThreadPlanForStepScripted(
ThreadPlanSP thread_plan_sp(new ThreadPlanPython(*this, class_name,
extra_args_impl));
-
+ thread_plan_sp->SetStopOthers(stop_other_threads);
status = QueueThreadPlan(thread_plan_sp, abort_other_plans);
return thread_plan_sp;
}
@@ -1661,7 +1677,7 @@ Thread::GetStackFrameSPForStackFramePtr(StackFrame *stack_frame_ptr) {
return GetStackFrameList()->GetStackFrameSPForStackFramePtr(stack_frame_ptr);
}
-const char *Thread::StopReasonAsCString(lldb::StopReason reason) {
+std::string Thread::StopReasonAsString(lldb::StopReason reason) {
switch (reason) {
case eStopReasonInvalid:
return "invalid";
@@ -1687,13 +1703,10 @@ const char *Thread::StopReasonAsCString(lldb::StopReason reason) {
return "instrumentation break";
}
- static char unknown_state_string[64];
- snprintf(unknown_state_string, sizeof(unknown_state_string),
- "StopReason = %i", reason);
- return unknown_state_string;
+ return "StopReason = " + std::to_string(reason);
}
-const char *Thread::RunModeAsCString(lldb::RunMode mode) {
+std::string Thread::RunModeAsString(lldb::RunMode mode) {
switch (mode) {
case eOnlyThisThread:
return "only this thread";
@@ -1703,10 +1716,7 @@ const char *Thread::RunModeAsCString(lldb::RunMode mode) {
return "only during stepping";
}
- static char unknown_state_string[64];
- snprintf(unknown_state_string, sizeof(unknown_state_string), "RunMode = %i",
- mode);
- return unknown_state_string;
+ return "RunMode = " + std::to_string(mode);
}
size_t Thread::GetStatus(Stream &strm, uint32_t start_frame,