55 : m_opaque_wp(lldb_object_sp) {
60 : m_opaque_wp(rhs.m_opaque_wp) {
69 m_opaque_wp = std::make_shared<ScriptedThreadPlan>(*thread, class_name,
79 m_opaque_wp = std::make_shared<ScriptedThreadPlan>(*thread, class_name,
97 return this->
operator bool();
99SBThreadPlan::operator bool()
const {
102 return static_cast<bool>(GetSP());
133 if (thread_plan_sp) {
134 return SBThread(thread_plan_sp->GetThread().shared_from_this());
143 if (thread_plan_sp) {
146 description.Printf(
"Empty SBThreadPlan");
160 thread_plan_sp->SetPlanComplete(success);
168 return thread_plan_sp->IsPlanComplete();
177 return thread_plan_sp->IsPlanStale();
186 return thread_plan_sp->ValidatePlan(
nullptr);
195 return thread_plan_sp->StopOthers();
204 thread_plan_sp->SetStopOthers(stop_others);
227 if (thread_plan_sp) {
228 Address *start_address = sb_start_address.
get();
229 if (!start_address) {
239 thread_plan_sp->GetThread().QueueThreadPlanForStepOverRange(
242 if (plan_status.
Fail())
245 plan.
GetSP()->SetPrivate(
true);
267 if (thread_plan_sp) {
268 Address *start_address = sb_start_address.
get();
269 if (!start_address) {
279 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForStepInRange(
280 false, range, sc,
nullptr,
eAllThreads, plan_status));
282 if (plan_status.
Fail())
285 plan.
GetSP()->SetPrivate(
true);
307 if (thread_plan_sp) {
309 sc = thread_plan_sp->GetThread().GetStackFrameAtIndex(0)->GetSymbolContext(
310 lldb::eSymbolContextEverything);
314 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForStepOut(
316 frame_idx_to_step_to, plan_status));
318 if (plan_status.
Fail())
321 plan.
GetSP()->SetPrivate(
true);
341 if (thread_plan_sp) {
348 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForRunToAddress(
349 false, *address,
false, plan_status));
351 if (plan_status.
Fail())
354 plan.
GetSP()->SetPrivate(
true);
375 if (thread_plan_sp) {
379 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForStepScripted(
380 false, script_class_name, empty_args,
false, plan_status));
382 if (plan_status.
Fail())
385 plan.
GetSP()->SetPrivate(
true);
399 if (thread_plan_sp) {
403 SBThreadPlan(thread_plan_sp->GetThread().QueueThreadPlanForStepScripted(
404 false, script_class_name, args_obj,
false, plan_status));
406 if (plan_status.
Fail())
409 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.
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP
StopReason
Thread stop reasons.