9#ifndef LLDB_TARGET_THREADPLAN_H
10#define LLDB_TARGET_THREADPLAN_H
287class ThreadPlan :
public std::enable_shared_from_this<ThreadPlan>,
503 Vote report_stop_vote,
Vote report_run_vote);
518 thread_plan_sp->SetPrivate(
true);
519 thread_plan_sp->SetIsControllingPlan(
false);
static llvm::raw_ostream & error(Stream &strm)
A plug-in interface definition class for debugging a process.
A stream class that can stream formatted output to a file.
bool MischiefManaged() override
lldb::StateType GetPlanRunState() override
bool OkayToDiscard() override
const ThreadPlanNull & operator=(const ThreadPlanNull &)=delete
~ThreadPlanNull() override
bool DoPlanExplainsStop(Event *event_ptr) override
void GetDescription(Stream *s, lldb::DescriptionLevel level) override
Print a description of this thread to the stream s.
bool ValidatePlan(Stream *error) override
Returns whether this plan could be successfully created.
const Status & GetStatus()
ThreadPlanNull(const ThreadPlanNull &)=delete
bool IsBasePlan() override
bool ShouldStop(Event *event_ptr) override
virtual bool IsLeafPlan()
virtual void GetDescription(Stream *s, lldb::DescriptionLevel level)=0
Print a description of this thread to the stream s.
virtual Vote ShouldReportStop(Event *event_ptr)
virtual void ThreadDestroyed()
int32_t m_iteration_count
ThreadPlan(const ThreadPlan &)=delete
virtual bool DoPlanExplainsStop(Event *event_ptr)=0
void SetPrivate(bool input)
virtual bool OkayToDiscard()
virtual bool DoWillResume(lldb::StateType resume_state, bool current_plan)
virtual lldb::StateType GetPlanRunState()=0
virtual bool ShouldAutoContinue(Event *event_ptr)
Returns whether this thread plan overrides the ShouldStop of subsequently processed plans.
void SetStopInfo(lldb::StopInfoSP stop_reason_sp)
virtual lldb::ValueObjectSP GetReturnValueObject()
Vote ShouldReportRun(Event *event_ptr)
const char * GetName() const
Returns the name of this thread plan.
bool IsUsuallyUnexplainedStopReason(lldb::StopReason)
ThreadPlanKind GetKind() const
virtual bool SupportsResumeOthers()
LazyBool m_cached_plan_explains_stop
void PushPlan(lldb::ThreadPlanSP &thread_plan_sp)
void SetPlanComplete(bool success=true)
Thread & GetThread()
Returns the Thread that is using this thread plan.
virtual bool ShouldRunBeforePublicStop()
bool PlanExplainsStop(Event *event_ptr)
virtual bool IsVirtualStep()
virtual lldb::ExpressionVariableSP GetExpressionVariable()
virtual bool StopOthers()
lldb::ThreadPlanTracerSP & GetThreadPlanTracer()
const ThreadPlan & operator=(const ThreadPlan &)=delete
void SetOkayToDiscard(bool value)
bool SetIterationCount(size_t count)
static lldb::user_id_t GetNextID()
@ eKindSingleThreadTimeout
@ eKindStepOverBreakpoint
void SetThreadPlanTracer(lldb::ThreadPlanTracerSP new_tracer_sp)
bool m_takes_iteration_count
virtual void RestoreThreadState()
bool TracerExplainsStop()
virtual bool ValidatePlan(Stream *error)=0
Returns whether this plan could be successfully created.
ThreadPlan * GetPreviousPlan()
void ClearThreadCache()
Clear the Thread* cache.
bool WillResume(lldb::StateType resume_state, bool current_plan)
virtual bool MischiefManaged()
bool m_could_not_resolve_hw_bp
virtual bool IsPlanStale()
lldb::ThreadPlanTracerSP m_tracer_sp
virtual bool WillStop()=0
lldb::StateType RunState()
virtual void SetStopOthers(bool new_value)
bool SetIsControllingPlan(bool value)
bool m_is_controlling_plan
void CachePlanExplainsStop(bool does_explain)
virtual bool ShouldStop(Event *event_ptr)=0
std::recursive_mutex m_plan_complete_mutex
virtual bool IsBasePlan()
lldb::StopInfoSP GetPrivateStopInfo()
virtual lldb::StopInfoSP GetPrivateStopInfo(bool calculate=true)
void SetStopInfo(const lldb::StopInfoSP &stop_info_sp)
ThreadPlan * GetPreviousPlan(ThreadPlan *plan) const
void PushPlan(lldb::ThreadPlanSP plan_sp)
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::ExpressionVariable > ExpressionVariableSP
StateType
Process and Thread States.
std::shared_ptr< lldb_private::StopInfo > StopInfoSP
StopReason
Thread stop reasons.
std::shared_ptr< lldb_private::ThreadPlanTracer > ThreadPlanTracerSP
A mix in class that contains a generic user ID.