Go to the documentation of this file.
9 #ifndef LLDB_TARGET_THREADPLAN_H
10 #define LLDB_TARGET_THREADPLAN_H
287 class ThreadPlan :
public std::enable_shared_from_this<ThreadPlan>,
452 return lldb::ValueObjectSP();
463 return lldb::ExpressionVariableSP();
487 Vote report_stop_vote,
Vote report_run_vote);
500 void PushPlan(lldb::ThreadPlanSP &thread_plan_sp) {
502 thread_plan_sp->SetPrivate(
true);
503 thread_plan_sp->SetIsControllingPlan(
false);
601 #endif // LLDB_TARGET_THREADPLAN_H
Thread & GetThread()
Returns the Thread that is using this thread plan.
~ThreadPlanNull() override
virtual void ThreadDestroyed()
void SetOkayToDiscard(bool value)
virtual lldb::StopInfoSP GetPrivateStopInfo()
@ eKindStepOverBreakpoint
virtual lldb::ValueObjectSP GetReturnValueObject()
ThreadPlanKind GetKind() const
virtual void RestoreThreadState()
virtual lldb::StateType GetPlanRunState()=0
ThreadPlan(ThreadPlanKind kind, const char *name, Thread &thread, Vote report_stop_vote, Vote report_run_vote)
bool IsBasePlan() override
StopReason
Thread stop reasons.
ThreadPlan * GetPreviousPlan(ThreadPlan *plan) const
ThreadPlanNull(Thread &thread)
LazyBool m_cached_plan_explains_stop
virtual bool ShouldStop(Event *event_ptr)=0
const Status & GetStatus()
void CachePlanExplainsStop(bool does_explain)
bool SetIsControllingPlan(bool value)
void SetStopInfo(lldb::StopInfoSP stop_reason_sp)
static llvm::raw_ostream & error(Stream &strm)
bool SetIterationCount(size_t count)
virtual bool WillStop()=0
virtual bool ShouldAutoContinue(Event *event_ptr)
Returns whether this thread plan overrides the ShouldStop of subsequently processed plans.
virtual bool MischiefManaged()
ThreadPlan * GetPreviousPlan()
bool m_is_controlling_plan
virtual lldb::ExpressionVariableSP GetExpressionVariable()
bool ValidatePlan(Stream *error) override
Returns whether this plan could be successfully created.
virtual bool DoPlanExplainsStop(Event *event_ptr)=0
const ThreadPlan & operator=(const ThreadPlan &)=delete
static lldb::user_id_t GetNextID()
void SetStopInfo(const lldb::StopInfoSP &stop_info_sp)
bool PlanExplainsStop(Event *event_ptr)
virtual bool IsVirtualStep()
string(SUBSTRING ${p} 10 -1 pStripped) if($
bool OkayToDiscard() override
lldb::ThreadPlanTracerSP & GetThreadPlanTracer()
std::recursive_mutex m_plan_complete_mutex
virtual bool OkayToDiscard()
bool MischiefManaged() override
void PushPlan(lldb::ThreadPlanSP &thread_plan_sp)
void SetPrivate(bool input)
virtual bool ValidatePlan(Stream *error)=0
Returns whether this plan could be successfully created.
virtual bool StopOthers()
void SetPlanComplete(bool success=true)
bool IsUsuallyUnexplainedStopReason(lldb::StopReason)
void PushPlan(lldb::ThreadPlanSP plan_sp)
virtual bool DoWillResume(lldb::StateType resume_state, bool current_plan)
bool m_could_not_resolve_hw_bp
virtual void SetStopOthers(bool new_value)
int32_t m_iteration_count
Vote ShouldReportRun(Event *event_ptr)
const char * GetName() const
Returns the name of this thread plan.
void SetThreadPlanTracer(lldb::ThreadPlanTracerSP new_tracer_sp)
A class that represents a running process on the host machine.
lldb::StateType GetPlanRunState() override
bool WillResume(lldb::StateType resume_state, bool current_plan)
lldb::ThreadPlanTracerSP m_tracer_sp
void GetDescription(Stream *s, lldb::DescriptionLevel level) override
Print a description of this thread to the stream s.
virtual Vote ShouldReportStop(Event *event_ptr)
StateType
Process and Thread States.
bool m_takes_iteration_count
lldb::StopInfoSP GetPrivateStopInfo()
void ClearThreadCache()
Clear the Thread* cache.
bool DoPlanExplainsStop(Event *event_ptr) override
const ThreadPlanNull & operator=(const ThreadPlanNull &)=delete
virtual bool IsBasePlan()
lldb::StateType RunState()
virtual void GetDescription(Stream *s, lldb::DescriptionLevel level)=0
Print a description of this thread to the stream s.
bool TracerExplainsStop()
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.
bool ShouldStop(Event *event_ptr) override
virtual bool IsPlanStale()