LLDB  mainline
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lldb_private::ThreadPlan Class Referenceabstract

#include <ThreadPlan.h>

Inheritance diagram for lldb_private::ThreadPlan:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::ThreadPlan:
Collaboration graph
[legend]

Public Types

enum  ThreadScope { eAllThreads, eSomeThreads, eThisThread }
 
enum  ThreadPlanKind {
  eKindGeneric, eKindNull, eKindBase, eKindCallFunction,
  eKindPython, eKindStepInstruction, eKindStepOut, eKindStepOverBreakpoint,
  eKindStepOverRange, eKindStepInRange, eKindRunToAddress, eKindStepThrough,
  eKindStepUntil, eKindTestCondition
}
 

Public Member Functions

 ThreadPlan (ThreadPlanKind kind, const char *name, Thread &thread, Vote stop_vote, Vote run_vote)
 
virtual ~ThreadPlan ()
 
const char * GetName () const
 Returns the name of this thread plan. More...
 
ThreadGetThread ()
 Returns the Thread that is using this thread plan. More...
 
const ThreadGetThread () const
 
TargetGetTarget ()
 
const TargetGetTarget () const
 
virtual void GetDescription (Stream *s, lldb::DescriptionLevel level)=0
 Print a description of this thread to the stream s. More...
 
virtual bool ValidatePlan (Stream *error)=0
 Returns whether this plan could be successfully created. More...
 
bool TracerExplainsStop ()
 
lldb::StateType RunState ()
 
bool PlanExplainsStop (Event *event_ptr)
 
virtual bool ShouldStop (Event *event_ptr)=0
 
virtual bool ShouldAutoContinue (Event *event_ptr)
 
virtual Vote ShouldReportStop (Event *event_ptr)
 
virtual Vote ShouldReportRun (Event *event_ptr)
 
virtual void SetStopOthers (bool new_value)
 
virtual bool StopOthers ()
 
bool WillResume (lldb::StateType resume_state, bool current_plan)
 
virtual bool WillStop ()=0
 
bool IsMasterPlan ()
 
bool SetIsMasterPlan (bool value)
 
virtual bool OkayToDiscard ()
 
void SetOkayToDiscard (bool value)
 
virtual bool MischiefManaged ()
 
virtual void ThreadDestroyed ()
 
bool GetPrivate ()
 
void SetPrivate (bool input)
 
virtual void DidPush ()
 
virtual void WillPop ()
 
void PushPlan (lldb::ThreadPlanSP &thread_plan_sp)
 
ThreadPlanKind GetKind () const
 
bool IsPlanComplete ()
 
void SetPlanComplete (bool success=true)
 
virtual bool IsPlanStale ()
 
bool PlanSucceeded ()
 
virtual bool IsBasePlan ()
 
lldb::ThreadPlanTracerSP & GetThreadPlanTracer ()
 
void SetThreadPlanTracer (lldb::ThreadPlanTracerSP new_tracer_sp)
 
void DoTraceLog ()
 
virtual lldb::StopInfoSP GetRealStopInfo ()
 
virtual lldb::ValueObjectSP GetReturnValueObject ()
 
virtual lldb::ExpressionVariableSP GetExpressionVariable ()
 
virtual bool RestoreThreadState ()
 
virtual bool IsVirtualStep ()
 
virtual bool SetIterationCount (size_t count)
 
virtual size_t GetIterationCount ()
 
- Public Member Functions inherited from lldb_private::UserID
 UserID (lldb::user_id_t uid=LLDB_INVALID_UID)
 Construct with optional user ID. More...
 
 ~UserID ()
 Destructor. More...
 
void Clear ()
 Clears the object state. More...
 
lldb::user_id_t GetID () const
 Get accessor for the user ID. More...
 
void SetID (lldb::user_id_t uid)
 Set accessor for the user ID. More...
 

Protected Member Functions

virtual bool DoWillResume (lldb::StateType resume_state, bool current_plan)
 
virtual bool DoPlanExplainsStop (Event *event_ptr)=0
 
ThreadPlanGetPreviousPlan ()
 
lldb::StopInfoSP GetPrivateStopInfo ()
 
void SetStopInfo (lldb::StopInfoSP stop_reason_sp)
 
void CachePlanExplainsStop (bool does_explain)
 
LazyBool GetCachedPlanExplainsStop () const
 
virtual lldb::StateType GetPlanRunState ()=0
 
bool IsUsuallyUnexplainedStopReason (lldb::StopReason)
 

Protected Attributes

Status m_status
 
Threadm_thread
 
Vote m_stop_vote
 
Vote m_run_vote
 
bool m_takes_iteration_count
 
bool m_could_not_resolve_hw_bp
 
int32_t m_iteration_count = 1
 
- Protected Attributes inherited from lldb_private::UserID
lldb::user_id_t m_uid
 The user ID that uniquely identifies an object. More...
 

Detailed Description

Definition at line 331 of file ThreadPlan.h.

Member Enumeration Documentation

◆ ThreadPlanKind

Enumerator
eKindGeneric 
eKindNull 
eKindBase 
eKindCallFunction 
eKindPython 
eKindStepInstruction 
eKindStepOut 
eKindStepOverBreakpoint 
eKindStepOverRange 
eKindStepInRange 
eKindRunToAddress 
eKindStepThrough 
eKindStepUntil 
eKindTestCondition 

Definition at line 338 of file ThreadPlan.h.

◆ ThreadScope

Enumerator
eAllThreads 
eSomeThreads 
eThisThread 

Definition at line 334 of file ThreadPlan.h.

Constructor & Destructor Documentation

◆ ThreadPlan()

ThreadPlan::ThreadPlan ( ThreadPlanKind  kind,
const char *  name,
Thread thread,
Vote  stop_vote,
Vote  run_vote 
)

Definition at line 22 of file ThreadPlan.cpp.

References lldb_private::UserID::SetID(), and ~ThreadPlan().

◆ ~ThreadPlan()

ThreadPlan::~ThreadPlan ( )
virtualdefault

Referenced by ThreadPlan().

Member Function Documentation

◆ CachePlanExplainsStop()

void lldb_private::ThreadPlan::CachePlanExplainsStop ( bool  does_explain)
inlineprotected

Definition at line 572 of file ThreadPlan.h.

References lldb_private::eLazyBoolNo, and lldb_private::eLazyBoolYes.

◆ DidPush()

void ThreadPlan::DidPush ( )
virtual

◆ DoPlanExplainsStop()

virtual bool lldb_private::ThreadPlan::DoPlanExplainsStop ( Event event_ptr)
protectedpure virtual

◆ DoTraceLog()

void lldb_private::ThreadPlan::DoTraceLog ( )
inline

Definition at line 486 of file ThreadPlan.h.

Referenced by lldb_private::Thread::ShouldStop().

◆ DoWillResume()

virtual bool lldb_private::ThreadPlan::DoWillResume ( lldb::StateType  resume_state,
bool  current_plan 
)
inlineprotectedvirtual

◆ GetCachedPlanExplainsStop()

LazyBool lldb_private::ThreadPlan::GetCachedPlanExplainsStop ( ) const
inlineprotected

Definition at line 576 of file ThreadPlan.h.

References GetPlanRunState(), and IsUsuallyUnexplainedStopReason().

◆ GetDescription()

virtual void lldb_private::ThreadPlan::GetDescription ( Stream s,
lldb::DescriptionLevel  level 
)
pure virtual

◆ GetExpressionVariable()

virtual lldb::ExpressionVariableSP lldb_private::ThreadPlan::GetExpressionVariable ( )
inlinevirtual

Reimplemented in lldb_private::ThreadPlanCallUserExpression.

Definition at line 514 of file ThreadPlan.h.

◆ GetIterationCount()

virtual size_t lldb_private::ThreadPlan::GetIterationCount ( )
inlinevirtual

Definition at line 539 of file ThreadPlan.h.

References m_iteration_count, and m_takes_iteration_count.

◆ GetKind()

ThreadPlanKind lldb_private::ThreadPlan::GetKind ( ) const
inline

◆ GetName()

const char* lldb_private::ThreadPlan::GetName ( ) const
inline

Returns the name of this thread plan.

Returns
A const char * pointer to the thread plan's name.

Definition at line 366 of file ThreadPlan.h.

Referenced by lldb_private::Thread::ShouldStop().

◆ GetPlanRunState()

virtual lldb::StateType lldb_private::ThreadPlan::GetPlanRunState ( )
protectedpure virtual

◆ GetPreviousPlan()

ThreadPlan* lldb_private::ThreadPlan::GetPreviousPlan ( )
inlineprotected

Definition at line 559 of file ThreadPlan.h.

References lldb_private::Thread::GetPreviousPlan(), and m_thread.

Referenced by ShouldReportRun(), ShouldReportStop(), and StopOthers().

◆ GetPrivate()

bool lldb_private::ThreadPlan::GetPrivate ( )
inline

Definition at line 455 of file ThreadPlan.h.

◆ GetPrivateStopInfo()

lldb::StopInfoSP lldb_private::ThreadPlan::GetPrivateStopInfo ( )
inlineprotected

◆ GetRealStopInfo()

virtual lldb::StopInfoSP lldb_private::ThreadPlan::GetRealStopInfo ( )
inlinevirtual

◆ GetReturnValueObject()

virtual lldb::ValueObjectSP lldb_private::ThreadPlan::GetReturnValueObject ( )
inlinevirtual

Reimplemented in lldb_private::ThreadPlanCallFunction, and lldb_private::ThreadPlanStepOut.

Definition at line 503 of file ThreadPlan.h.

◆ GetTarget() [1/2]

Target& lldb_private::ThreadPlan::GetTarget ( )
inline

◆ GetTarget() [2/2]

const Target& lldb_private::ThreadPlan::GetTarget ( ) const
inline

◆ GetThread() [1/2]

Thread& lldb_private::ThreadPlan::GetThread ( )
inline

◆ GetThread() [2/2]

const Thread& lldb_private::ThreadPlan::GetThread ( ) const
inline

Definition at line 374 of file ThreadPlan.h.

References m_thread.

◆ GetThreadPlanTracer()

lldb::ThreadPlanTracerSP& lldb_private::ThreadPlan::GetThreadPlanTracer ( )
inline

Definition at line 480 of file ThreadPlan.h.

◆ IsBasePlan()

virtual bool lldb_private::ThreadPlan::IsBasePlan ( )
inlinevirtual

◆ IsMasterPlan()

bool lldb_private::ThreadPlan::IsMasterPlan ( )
inline

Definition at line 434 of file ThreadPlan.h.

Referenced by OkayToDiscard(), and lldb_private::Thread::ShouldStop().

◆ IsPlanComplete()

bool ThreadPlan::IsPlanComplete ( )

◆ IsPlanStale()

virtual bool lldb_private::ThreadPlan::IsPlanStale ( )
inlinevirtual

◆ IsUsuallyUnexplainedStopReason()

bool ThreadPlan::IsUsuallyUnexplainedStopReason ( lldb::StopReason  reason)
protected

◆ IsVirtualStep()

virtual bool lldb_private::ThreadPlan::IsVirtualStep ( )
inlinevirtual

Reimplemented in lldb_private::ThreadPlanStepInRange.

Definition at line 527 of file ThreadPlan.h.

Referenced by lldb_private::Thread::GetPrivateStopInfo().

◆ MischiefManaged()

bool ThreadPlan::MischiefManaged ( )
virtual

◆ OkayToDiscard()

bool ThreadPlan::OkayToDiscard ( )
virtual

◆ PlanExplainsStop()

bool ThreadPlan::PlanExplainsStop ( Event event_ptr)

◆ PlanSucceeded()

bool lldb_private::ThreadPlan::PlanSucceeded ( )
inline

◆ PushPlan()

void lldb_private::ThreadPlan::PushPlan ( lldb::ThreadPlanSP &  thread_plan_sp)
inline

◆ RestoreThreadState()

virtual bool lldb_private::ThreadPlan::RestoreThreadState ( )
inlinevirtual

Reimplemented in lldb_private::ThreadPlanCallFunction.

Definition at line 522 of file ThreadPlan.h.

◆ RunState()

lldb::StateType ThreadPlan::RunState ( )

Definition at line 137 of file ThreadPlan.cpp.

References lldb::eStateStepping, and GetPlanRunState().

Referenced by TracerExplainsStop().

◆ SetIsMasterPlan()

bool lldb_private::ThreadPlan::SetIsMasterPlan ( bool  value)
inline

◆ SetIterationCount()

virtual bool lldb_private::ThreadPlan::SetIterationCount ( size_t  count)
inlinevirtual

Definition at line 529 of file ThreadPlan.h.

References m_iteration_count, and m_takes_iteration_count.

◆ SetOkayToDiscard()

void lldb_private::ThreadPlan::SetOkayToDiscard ( bool  value)
inline

◆ SetPlanComplete()

void ThreadPlan::SetPlanComplete ( bool  success = true)

◆ SetPrivate()

void lldb_private::ThreadPlan::SetPrivate ( bool  input)
inline

Definition at line 457 of file ThreadPlan.h.

References DidPush(), and WillPop().

Referenced by lldb_private::ThreadPlanPython::ThreadPlanPython().

◆ SetStopInfo()

void lldb_private::ThreadPlan::SetStopInfo ( lldb::StopInfoSP  stop_reason_sp)
inlineprotected

◆ SetStopOthers()

void ThreadPlan::SetStopOthers ( bool  new_value)
virtual

Reimplemented in lldb_private::ThreadPlanCallFunction, and lldb_private::ThreadPlanRunToAddress.

Definition at line 94 of file ThreadPlan.cpp.

Referenced by ShouldAutoContinue().

◆ SetThreadPlanTracer()

void lldb_private::ThreadPlan::SetThreadPlanTracer ( lldb::ThreadPlanTracerSP  new_tracer_sp)
inline

Definition at line 482 of file ThreadPlan.h.

Referenced by lldb_private::ThreadPlanBase::ThreadPlanBase().

◆ ShouldAutoContinue()

virtual bool lldb_private::ThreadPlan::ShouldAutoContinue ( Event event_ptr)
inlinevirtual

◆ ShouldReportRun()

Vote ThreadPlan::ShouldReportRun ( Event event_ptr)
virtual

◆ ShouldReportStop()

Vote ThreadPlan::ShouldReportStop ( Event event_ptr)
virtual

◆ ShouldStop()

virtual bool lldb_private::ThreadPlan::ShouldStop ( Event event_ptr)
pure virtual

◆ StopOthers()

bool ThreadPlan::StopOthers ( )
virtual

◆ ThreadDestroyed()

virtual void lldb_private::ThreadPlan::ThreadDestroyed ( )
inlinevirtual

◆ TracerExplainsStop()

bool lldb_private::ThreadPlan::TracerExplainsStop ( )
inline

◆ ValidatePlan()

virtual bool lldb_private::ThreadPlan::ValidatePlan ( Stream error)
pure virtual

◆ WillPop()

void ThreadPlan::WillPop ( )
virtual

◆ WillResume()

bool ThreadPlan::WillResume ( lldb::StateType  resume_state,
bool  current_plan 
)

◆ WillStop()

virtual bool lldb_private::ThreadPlan::WillStop ( )
pure virtual

Member Data Documentation

◆ m_could_not_resolve_hw_bp

bool lldb_private::ThreadPlan::m_could_not_resolve_hw_bp
protected

◆ m_iteration_count

int32_t lldb_private::ThreadPlan::m_iteration_count = 1
protected

◆ m_run_vote

Vote lldb_private::ThreadPlan::m_run_vote
protected

◆ m_status

Status lldb_private::ThreadPlan::m_status
protected

◆ m_stop_vote

Vote lldb_private::ThreadPlan::m_stop_vote
protected

◆ m_takes_iteration_count

bool lldb_private::ThreadPlan::m_takes_iteration_count
protected

◆ m_thread

Thread& lldb_private::ThreadPlan::m_thread
protected

Definition at line 585 of file ThreadPlan.h.

Referenced by lldb_private::ThreadPlanStepUntil::AnalyzeStop(), lldb_private::ThreadPlanRunToAddress::AtOurAddress(), lldb_private::ThreadPlanStepRange::CompareCurrentFrameToStartFrame(), lldb_private::ThreadPlanStepOut::DidPush(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::DidPush(), lldb_private::ThreadPlanCallFunction::DidPush(), lldb_private::ThreadPlanPython::DidPush(), lldb_private::ThreadPlanStepOverBreakpoint::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOut::DoPlanExplainsStop(), lldb_private::ThreadPlanPython::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoPlanExplainsStop(), lldb_private::ThreadPlanNull::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoTakedown(), lldb_private::ThreadPlanStepUntil::DoWillResume(), lldb_private::ThreadPlanStepOverRange::DoWillResume(), lldb_private::ThreadPlanStepOverBreakpoint::DoWillResume(), lldb_private::ThreadPlanStepOut::DoWillResume(), lldb_private::ThreadPlanStepInRange::DoWillResume(), lldb_private::ThreadPlanStepRange::DumpRanges(), lldb_private::ThreadPlanStepOverRange::GetDescription(), lldb_private::ThreadPlanRunToAddress::GetDescription(), lldb_private::ThreadPlanCallFunction::GetDescription(), lldb_private::ThreadPlanCallFunctionUsingABI::GetDescription(), lldb_private::ThreadPlanStepRange::GetInstructionsForAddress(), lldb_private::ThreadPlanPython::GetPlanRunState(), lldb_private::ThreadPlanNull::GetPlanRunState(), GetPreviousPlan(), GetPrivateStopInfo(), lldb_private::ThreadPlanCallUserExpression::GetRealStopInfo(), GetRealStopInfo(), GetTarget(), GetThread(), lldb_private::ThreadPlanStepThrough::HitOurBackstopBreakpoint(), lldb_private::ThreadPlanStepRange::InRange(), lldb_private::ThreadPlanStepRange::InSymbol(), lldb_private::ThreadPlanStepInstruction::IsPlanStale(), lldb_private::ThreadPlanStepOverBreakpoint::IsPlanStale(), lldb_private::ThreadPlanStepOut::IsPlanStale(), lldb_private::ThreadPlanStepRange::IsPlanStale(), lldb_private::ThreadPlanPython::IsPlanStale(), lldb_private::ThreadPlanStepThrough::LookForPlanToStepThroughFromCurrentPC(), lldb_private::ThreadPlanStepOverBreakpoint::MischiefManaged(), lldb_private::ThreadPlanStepOut::MischiefManaged(), lldb_private::ThreadPlanRunToAddress::MischiefManaged(), lldb_private::ThreadPlanNull::MischiefManaged(), lldb_private::ThreadPlanStepRange::NextRangeBreakpointExplainsStop(), PushPlan(), lldb_private::ThreadPlanStepOut::QueueInlinedStepPlan(), lldb_private::ThreadPlanStepOverBreakpoint::ReenableBreakpointSite(), lldb_private::ThreadPlanCallFunction::ReportRegisterState(), lldb_private::ThreadPlanCallFunction::SetBreakpoints(), lldb_private::ThreadPlanRunToAddress::SetInitialBreakpoints(), lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint(), lldb_private::ThreadPlanCallFunctionUsingABI::SetReturnValue(), lldb_private::ThreadPlanCallFunction::SetReturnValue(), SetStopInfo(), lldb_private::ThreadPlanStepInstruction::SetUpState(), lldb_private::ThreadPlanBase::ShouldReportStop(), lldb_private::ThreadPlanStepInstruction::ShouldStop(), lldb_private::ThreadPlanStepOverRange::ShouldStop(), lldb_private::ThreadPlanBase::ShouldStop(), lldb_private::ThreadPlanStepOut::ShouldStop(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::ShouldStop(), lldb_private::ThreadPlanPython::ShouldStop(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanNull::ShouldStop(), lldb_private::ThreadPlanBase::ThreadPlanBase(), lldb_private::ThreadPlanRunToAddress::ThreadPlanRunToAddress(), lldb_private::ThreadPlanStepInRange::ThreadPlanStepInRange(), lldb_private::ThreadPlanStepOut::ThreadPlanStepOut(), lldb_private::ThreadPlanStepOverBreakpoint::ThreadPlanStepOverBreakpoint(), lldb_private::ThreadPlanStepRange::ThreadPlanStepRange(), lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough(), lldb_private::ThreadPlanStepUntil::ThreadPlanStepUntil(), lldb_private::ThreadPlanNull::ValidatePlan(), WillResume(), lldb_private::ThreadPlanStepUntil::WillStop(), lldb_private::ThreadPlanStepThrough::WillStop(), lldb_private::ThreadPlanStepOut::WillStop(), lldb_private::ThreadPlanNull::WillStop(), lldb_private::ThreadPlanRunToAddress::~ThreadPlanRunToAddress(), lldb_private::ThreadPlanStepOut::~ThreadPlanStepOut(), and lldb_private::ThreadPlanStepUntil::~ThreadPlanStepUntil().


The documentation for this class was generated from the following files: