56 : m_opaque_wp(lldb_object_sp) {
61 : m_opaque_wp(rhs.m_opaque_wp) {
70 m_opaque_wp = std::make_shared<ThreadPlanPython>(*thread, class_name,
80 m_opaque_wp = std::make_shared<ThreadPlanPython>(*thread, class_name,
98 return this->
operator bool();
100SBThreadPlan::operator bool()
const {
103 return static_cast<bool>(GetSP());
133 ThreadPlanSP thread_plan_sp(
GetSP());
134 if (thread_plan_sp) {
135 return SBThread(thread_plan_sp->GetThread().shared_from_this());
143 ThreadPlanSP thread_plan_sp(
GetSP());
144 if (thread_plan_sp) {
147 description.Printf(
"Empty SBThreadPlan");
159 ThreadPlanSP thread_plan_sp(
GetSP());
161 thread_plan_sp->SetPlanComplete(success);
167 ThreadPlanSP thread_plan_sp(
GetSP());
169 return thread_plan_sp->IsPlanComplete();
176 ThreadPlanSP thread_plan_sp(
GetSP());
178 return thread_plan_sp->IsPlanStale();
185 ThreadPlanSP thread_plan_sp(
GetSP());
187 return thread_plan_sp->ValidatePlan(
nullptr);
194 ThreadPlanSP thread_plan_sp(
GetSP());
196 return thread_plan_sp->StopOthers();
203 ThreadPlanSP thread_plan_sp(
GetSP());
205 thread_plan_sp->SetStopOthers(stop_others);
227 ThreadPlanSP thread_plan_sp(
GetSP());
228 if (thread_plan_sp) {
229 Address *start_address = sb_start_address.
get();
230 if (!start_address) {
240 thread_plan_sp->GetThread().QueueThreadPlanForStepOverRange(
243 if (plan_status.
Fail())
246 plan.
GetSP()->SetPrivate(
true);
267 ThreadPlanSP thread_plan_sp(
GetSP());
268 if (thread_plan_sp) {
269 Address *start_address = sb_start_address.
get();
270 if (!start_address) {
280 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForStepInRange(
281 false, range, sc,
nullptr,
eAllThreads, plan_status));
283 if (plan_status.
Fail())
286 plan.
GetSP()->SetPrivate(
true);
307 ThreadPlanSP thread_plan_sp(
GetSP());
308 if (thread_plan_sp) {
310 sc = thread_plan_sp->GetThread().GetStackFrameAtIndex(0)->GetSymbolContext(
311 lldb::eSymbolContextEverything);
315 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForStepOut(
317 frame_idx_to_step_to, plan_status));
319 if (plan_status.
Fail())
322 plan.
GetSP()->SetPrivate(
true);
341 ThreadPlanSP thread_plan_sp(
GetSP());
342 if (thread_plan_sp) {
349 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForRunToAddress(
350 false, *address,
false, plan_status));
352 if (plan_status.
Fail())
355 plan.
GetSP()->SetPrivate(
true);
375 ThreadPlanSP thread_plan_sp(
GetSP());
376 if (thread_plan_sp) {
380 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForStepScripted(
381 false, script_class_name, empty_args,
false, plan_status));
383 if (plan_status.
Fail())
386 plan.
GetSP()->SetPrivate(
true);
399 ThreadPlanSP thread_plan_sp(
GetSP());
400 if (thread_plan_sp) {
404 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForStepScripted(
405 false, script_class_name, args_obj,
false, plan_status));
407 if (plan_status.
Fail())
410 plan.
GetSP()->SetPrivate(
true);
static llvm::raw_ostream & error(Stream &strm)
#define LLDB_INSTRUMENT_VA(...)
lldb_private::Address * get()
lldb_private::Stream * get()
StructuredDataImplUP m_impl_up
lldb::StopReason GetStopReason()
SBThreadPlan QueueThreadPlanForStepInRange(SBAddress &start_address, lldb::addr_t range_size)
bool GetDescription(lldb::SBStream &description) const
lldb::ThreadPlanSP GetSP() const
void SetThreadPlan(const lldb::ThreadPlanSP &lldb_object_sp)
void SetPlanComplete(bool success)
SBThreadPlan QueueThreadPlanForStepScripted(const char *script_class_name)
void SetStopOthers(bool stop_others)
SBThread GetThread() const
const lldb::SBThreadPlan & operator=(const lldb::SBThreadPlan &rhs)
size_t GetStopReasonDataCount()
Get the number of words associated with the stop reason.
SBThreadPlan QueueThreadPlanForStepOverRange(SBAddress &start_address, lldb::addr_t range_size)
uint64_t GetStopReasonDataAtIndex(uint32_t idx)
Get information associated with a stop reason.
SBThreadPlan QueueThreadPlanForRunToAddress(SBAddress address)
lldb::ThreadPlanWP m_opaque_wp
SBThreadPlan QueueThreadPlanForStepOut(uint32_t frame_idx_to_step_to, bool first_insn=false)
lldb_private::Thread * get()
A section + offset based address range class.
A section + offset based address class.
uint32_t CalculateSymbolContext(SymbolContext *sc, lldb::SymbolContextItem resolve_scope=lldb::eSymbolContextEverything) const
Reconstruct a symbol context from an address.
bool Fail() const
Test for error condition.
const char * AsCString(const char *default_error_str="unknown error") const
Get the error string associated with the current error.
std::shared_ptr< Object > ObjectSP
Defines a symbol context baton that can be handed other debug core functions.
A class that represents a running process on the host machine.
StopReason
Thread stop reasons.