LLDB mainline
|
#include <ThreadPlan.h>
Public Types | |
enum | ThreadPlanKind { eKindGeneric , eKindNull , eKindBase , eKindCallFunction , eKindPython , eKindStepInstruction , eKindStepOut , eKindStepOverBreakpoint , eKindStepOverRange , eKindStepInRange , eKindRunToAddress , eKindStepThrough , eKindStepUntil } |
Public Member Functions | |
virtual | ~ThreadPlan () |
const char * | GetName () const |
Returns the name of this thread plan. | |
Thread & | GetThread () |
Returns the Thread that is using this thread plan. | |
Target & | GetTarget () |
const Target & | GetTarget () const |
void | ClearThreadCache () |
Clear the Thread* cache. | |
virtual void | GetDescription (Stream *s, lldb::DescriptionLevel level)=0 |
Print a description of this thread to the stream s. | |
virtual bool | ValidatePlan (Stream *error)=0 |
Returns whether this plan could be successfully created. | |
bool | TracerExplainsStop () |
lldb::StateType | RunState () |
bool | PlanExplainsStop (Event *event_ptr) |
virtual bool | ShouldStop (Event *event_ptr)=0 |
virtual bool | ShouldAutoContinue (Event *event_ptr) |
Returns whether this thread plan overrides the ShouldStop of subsequently processed plans. | |
virtual Vote | ShouldReportStop (Event *event_ptr) |
Vote | ShouldReportRun (Event *event_ptr) |
virtual void | SetStopOthers (bool new_value) |
virtual bool | StopOthers () |
virtual bool | ShouldRunBeforePublicStop () |
bool | WillResume (lldb::StateType resume_state, bool current_plan) |
virtual bool | WillStop ()=0 |
bool | IsControllingPlan () |
bool | SetIsControllingPlan (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 | DidPop () |
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::ValueObjectSP | GetReturnValueObject () |
virtual lldb::ExpressionVariableSP | GetExpressionVariable () |
virtual void | RestoreThreadState () |
virtual bool | IsVirtualStep () |
bool | SetIterationCount (size_t count) |
![]() | |
UserID (lldb::user_id_t uid=LLDB_INVALID_UID) | |
Construct with optional user ID. | |
~UserID ()=default | |
Destructor. | |
void | Clear () |
Clears the object state. | |
lldb::user_id_t | GetID () const |
Get accessor for the user ID. | |
void | SetID (lldb::user_id_t uid) |
Set accessor for the user ID. | |
Protected Member Functions | |
ThreadPlan (ThreadPlanKind kind, const char *name, Thread &thread, Vote report_stop_vote, Vote report_run_vote) | |
virtual bool | DoWillResume (lldb::StateType resume_state, bool current_plan) |
virtual bool | DoPlanExplainsStop (Event *event_ptr)=0 |
void | PushPlan (lldb::ThreadPlanSP &thread_plan_sp) |
ThreadPlan * | GetPreviousPlan () |
lldb::StopInfoSP | GetPrivateStopInfo () |
void | SetStopInfo (lldb::StopInfoSP stop_reason_sp) |
virtual lldb::StateType | GetPlanRunState ()=0 |
bool | IsUsuallyUnexplainedStopReason (lldb::StopReason) |
Protected Attributes | |
Status | m_status |
Process & | m_process |
lldb::tid_t | m_tid |
Vote | m_report_stop_vote |
Vote | m_report_run_vote |
bool | m_takes_iteration_count |
bool | m_could_not_resolve_hw_bp |
int32_t | m_iteration_count = 1 |
![]() | |
lldb::user_id_t | m_uid |
The user ID that uniquely identifies an object. | |
Private Member Functions | |
void | CachePlanExplainsStop (bool does_explain) |
ThreadPlan (const ThreadPlan &)=delete | |
const ThreadPlan & | operator= (const ThreadPlan &)=delete |
Static Private Member Functions | |
static lldb::user_id_t | GetNextID () |
Private Attributes | |
Thread * | m_thread |
ThreadPlanKind | m_kind |
std::string | m_name |
std::recursive_mutex | m_plan_complete_mutex |
LazyBool | m_cached_plan_explains_stop |
bool | m_plan_complete |
bool | m_plan_private |
bool | m_okay_to_discard |
bool | m_is_controlling_plan |
bool | m_plan_succeeded |
lldb::ThreadPlanTracerSP | m_tracer_sp |
Definition at line 287 of file ThreadPlan.h.
Definition at line 292 of file ThreadPlan.h.
|
virtualdefault |
|
protected |
Definition at line 23 of file ThreadPlan.cpp.
References GetNextID(), and lldb_private::UserID::SetID().
|
privatedelete |
|
inlineprivate |
Definition at line 539 of file ThreadPlan.h.
References lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, and m_cached_plan_explains_stop.
Referenced by PlanExplainsStop().
void ThreadPlan::ClearThreadCache | ( | ) |
Clear the Thread* cache.
This is useful in situations like when a new Thread list is being generated.
Definition at line 103 of file ThreadPlan.cpp.
References m_thread.
Referenced by WillResume().
|
virtual |
Reimplemented in lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallUserExpression, lldb_private::ThreadPlanStepOverBreakpoint, and lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint.
Definition at line 153 of file ThreadPlan.cpp.
|
virtual |
Reimplemented in lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanCallUserExpression, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, and lldb_private::AppleThreadPlanStepThroughObjCTrampoline.
Definition at line 151 of file ThreadPlan.cpp.
|
protectedpure virtual |
Implemented in lldb_private::ThreadPlanNull, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanStepInRange, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::AppleThreadPlanStepThroughDirectDispatch, and lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint.
Referenced by PlanExplainsStop().
|
inline |
Definition at line 443 of file ThreadPlan.h.
References m_tracer_sp.
Referenced by lldb_private::Thread::ShouldStop().
|
inlineprotectedvirtual |
Reimplemented in lldb_private::ThreadPlanBase, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanStepInRange, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, lldb_private::AppleThreadPlanStepThroughDirectDispatch, and lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint.
Definition at line 493 of file ThreadPlan.h.
Referenced by WillResume().
|
pure virtual |
Print a description of this thread to the stream s.
thread. Don't expect that the result of GetThread is valid in the description method. This might get called when the underlying Thread has not been reported, so we only know the TID and not the thread.
[in] | s | The stream to which to print the description. |
[in] | level | The level of description desired. Note that eDescriptionLevelBrief will be used in the stop message printed when the plan is complete. |
Implemented in lldb_private::ThreadPlanNull, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallFunctionUsingABI, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanCallUserExpression, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanStepInRange, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::AppleThreadPlanStepThroughDirectDispatch, and lldb_private::ThreadPlanStepRange.
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallUserExpression.
Definition at line 464 of file ThreadPlan.h.
|
inline |
Definition at line 425 of file ThreadPlan.h.
References m_kind.
Referenced by lldb_private::ThreadPlanStepInRange::DefaultShouldStopHereCallback(), lldb_private::ThreadPlanStepRange::InRange(), lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint(), and lldb_private::Thread::SetupForResume().
|
inline |
Returns the name of this thread plan.
Definition at line 314 of file ThreadPlan.h.
References m_name.
Referenced by lldb_private::Thread::ShouldStop().
|
staticprivate |
Definition at line 146 of file ThreadPlan.cpp.
Referenced by ThreadPlan().
|
protectedpure virtual |
Implemented in lldb_private::ThreadPlanNull, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, and lldb_private::AppleThreadPlanStepThroughObjCTrampoline.
Referenced by RunState().
|
inlineprotected |
Definition at line 512 of file ThreadPlan.h.
References lldb_private::Thread::GetPreviousPlan(), and GetThread().
Referenced by ShouldReportRun(), ShouldReportStop(), and StopOthers().
|
inline |
Definition at line 417 of file ThreadPlan.h.
References m_plan_private.
|
inlineprotected |
Definition at line 517 of file ThreadPlan.h.
References lldb_private::Thread::GetPrivateStopInfo(), and GetThread().
Referenced by lldb_private::ThreadPlanStepUntil::AnalyzeStop(), lldb_private::ThreadPlanCallFunction::BreakpointsExplainStop(), lldb_private::ThreadPlanCallFunction::DoPlanExplainsStop(), lldb_private::ThreadPlanStepInRange::DoPlanExplainsStop(), lldb_private::ThreadPlanStepInstruction::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOut::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOverBreakpoint::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOverRange::DoPlanExplainsStop(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoTakedown(), lldb_private::ThreadPlanCallFunction::GetRealStopInfo(), lldb_private::ThreadPlanBase::ShouldStop(), and lldb_private::ThreadPlanStepUntil::ShouldStop().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallFunction, and lldb_private::ThreadPlanStepOut.
Definition at line 453 of file ThreadPlan.h.
Target & ThreadPlan::GetTarget | ( | ) |
Definition at line 38 of file ThreadPlan.cpp.
References lldb_private::Process::GetTarget(), and m_process.
Referenced by lldb_private::AppleThreadPlanStepThroughDirectDispatch::AppleThreadPlanStepThroughDirectDispatch(), lldb_private::ThreadPlanStepUntil::Clear(), lldb_private::ThreadPlanStepRange::ClearNextBranchBreakpoint(), lldb_private::ThreadPlanCallFunction::ConstructorSetup(), lldb_private::ThreadPlanStepOut::DoWillResume(), lldb_private::ThreadPlanStepUntil::DoWillResume(), lldb_private::ThreadPlanStepRange::DumpRanges(), lldb_private::ThreadPlanCallFunction::GetDescription(), lldb_private::ThreadPlanCallFunctionUsingABI::GetDescription(), lldb_private::ThreadPlanRunToAddress::GetDescription(), lldb_private::ThreadPlanStepOut::GetDescription(), lldb_private::ThreadPlanStepRange::GetInstructionsForAddress(), lldb_private::ThreadPlanStepRange::InRange(), lldb_private::ThreadPlanStepRange::InSymbol(), lldb_private::ThreadPlanStepInstruction::IsPlanStale(), lldb_private::ThreadPlanStepRange::IsPlanStale(), lldb_private::ThreadPlanRunToAddress::MischiefManaged(), lldb_private::ThreadPlanStepOut::MischiefManaged(), lldb_private::ThreadPlanStepOut::QueueInlinedStepPlan(), lldb_private::ThreadPlanRunToAddress::SetInitialBreakpoints(), lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanStepInstruction::ShouldStop(), lldb_private::ThreadPlanStepOverRange::ShouldStop(), lldb_private::ThreadPlanStepOut::ThreadPlanStepOut(), lldb_private::ThreadPlanStepRange::ThreadPlanStepRange(), lldb_private::ThreadPlanStepOut::WillStop(), lldb_private::ThreadPlanStepUntil::WillStop(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::~AppleThreadPlanStepThroughDirectDispatch(), lldb_private::ThreadPlanRunToAddress::~ThreadPlanRunToAddress(), and lldb_private::ThreadPlanStepOut::~ThreadPlanStepOut().
const Target & ThreadPlan::GetTarget | ( | ) | const |
Definition at line 40 of file ThreadPlan.cpp.
References lldb_private::Process::GetTarget(), and m_process.
Thread & ThreadPlan::GetThread | ( | ) |
Returns the Thread that is using this thread plan.
Definition at line 42 of file ThreadPlan.cpp.
References lldb_private::ThreadList::FindThreadByID(), lldb_private::Process::GetThreadList(), m_process, m_thread, and m_tid.
Referenced by lldb_private::ThreadPlanStepUntil::AnalyzeStop(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::AppleThreadPlanStepThroughDirectDispatch(), lldb_private::ThreadPlanRunToAddress::AtOurAddress(), lldb_private::ThreadPlanStepOut::CalculateReturnValue(), lldb_private::ThreadPlanStepRange::CompareCurrentFrameToStartFrame(), lldb_private::ThreadPlanShouldStopHere::DefaultShouldStopHereCallback(), lldb_private::ThreadPlanStepInRange::DefaultShouldStopHereCallback(), lldb_private::ThreadPlanShouldStopHere::DefaultStepFromHereCallback(), lldb_private::ThreadPlanCallFunction::DidPush(), lldb_private::ThreadPlanCallOnFunctionExit::DidPush(), lldb_private::ThreadPlanStepOut::DidPush(), lldb_private::ThreadPlanNull::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOut::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOverBreakpoint::DoPlanExplainsStop(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::DoPlanExplainsStop(), lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoTakedown(), lldb_private::ThreadPlanStepInRange::DoWillResume(), lldb_private::ThreadPlanStepOverRange::DoWillResume(), lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint::DoWillResume(), lldb_private::ThreadPlanStepInRange::FrameMatchesAvoidCriteria(), lldb_private::ThreadPlanNull::GetPlanRunState(), GetPreviousPlan(), GetPrivateStopInfo(), lldb_private::ThreadPlanStepThrough::HitOurBackstopBreakpoint(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::InitializeFunctionCaller(), lldb_private::ThreadPlanStepRange::InRange(), lldb_private::ThreadPlanStepRange::InSymbol(), lldb_private::ThreadPlanShouldStopHere::InvokeShouldStopHereCallback(), lldb_private::ThreadPlanStepInstruction::IsPlanStale(), lldb_private::ThreadPlanStepOut::IsPlanStale(), lldb_private::ThreadPlanStepOverBreakpoint::IsPlanStale(), lldb_private::ThreadPlanStepRange::IsPlanStale(), lldb_private::ThreadPlanStepThrough::LookForPlanToStepThroughFromCurrentPC(), lldb_private::ThreadPlanNull::MischiefManaged(), lldb_private::ThreadPlanCallUserExpression::MischiefManaged(), lldb_private::ThreadPlanStepOverBreakpoint::MischiefManaged(), PushPlan(), lldb_private::ThreadPlanStepOut::QueueInlinedStepPlan(), lldb_private::ThreadPlanCallFunction::ReportRegisterState(), lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint::ResetWatchpoint(), lldb_private::ThreadPlanCallFunction::RestoreThreadState(), lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint(), lldb_private::ThreadPlanCallFunction::SetReturnValue(), lldb_private::ThreadPlanCallFunctionUsingABI::SetReturnValue(), SetStopInfo(), lldb_private::ThreadPlanStepInRange::SetupAvoidNoDebug(), lldb_private::ThreadPlanStepOut::SetupAvoidNoDebug(), lldb_private::ThreadPlanStepOverRange::SetupAvoidNoDebug(), lldb_private::ThreadPlanStepInstruction::SetUpState(), lldb_private::ThreadPlanBase::ShouldReportStop(), lldb_private::ThreadPlanNull::ShouldStop(), lldb_private::ThreadPlanBase::ShouldStop(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanStepInstruction::ShouldStop(), lldb_private::ThreadPlanStepOut::ShouldStop(), lldb_private::ThreadPlanStepOverRange::ShouldStop(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::ShouldStop(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::ShouldStop(), lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint::ShouldStop(), lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough(), lldb_private::ThreadPlanNull::ValidatePlan(), WillResume(), and lldb_private::ThreadPlanNull::WillStop().
|
inline |
Definition at line 437 of file ThreadPlan.h.
References m_tracer_sp.
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanNull, and lldb_private::ThreadPlanBase.
Definition at line 435 of file ThreadPlan.h.
Referenced by lldb_private::Thread::ShouldReportStop(), and lldb_private::Thread::ShouldStop().
|
inline |
Definition at line 396 of file ThreadPlan.h.
References m_is_controlling_plan.
Referenced by OkayToDiscard(), and lldb_private::Thread::ShouldStop().
bool ThreadPlan::IsPlanComplete | ( | ) |
Definition at line 61 of file ThreadPlan.cpp.
References m_plan_complete, and m_plan_complete_mutex.
Referenced by lldb_private::ThreadPlanCallFunction::DoTakedown(), lldb_private::ThreadPlanCallFunction::MischiefManaged(), lldb_private::ThreadPlanCallUserExpression::MischiefManaged(), lldb_private::ThreadPlanPython::MischiefManaged(), lldb_private::ThreadPlanStepInstruction::MischiefManaged(), lldb_private::ThreadPlanStepOut::MischiefManaged(), lldb_private::ThreadPlanStepRange::MischiefManaged(), lldb_private::ThreadPlanStepThrough::MischiefManaged(), lldb_private::ThreadPlanStepUntil::MischiefManaged(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::MischiefManaged(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::MischiefManaged(), lldb_private::ThreadPlanCallFunction::ShouldReportStop(), lldb_private::ThreadPlanStepRange::ShouldReportStop(), lldb_private::Thread::ShouldStop(), lldb_private::ThreadPlanCallFunction::ShouldStop(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanStepOut::ShouldStop(), and lldb_private::ThreadPlanStepThrough::ShouldStop().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanPython, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, and lldb_private::ThreadPlanStepRange.
Definition at line 431 of file ThreadPlan.h.
Referenced by lldb_private::Thread::ShouldStop().
|
protected |
Definition at line 166 of file ThreadPlan.cpp.
References lldb::eStopReasonException, lldb::eStopReasonExec, lldb::eStopReasonFork, lldb::eStopReasonInstrumentation, lldb::eStopReasonSignal, lldb::eStopReasonThreadExiting, lldb::eStopReasonVFork, lldb::eStopReasonVForkDone, and lldb::eStopReasonWatchpoint.
Referenced by lldb_private::ThreadPlanStepUntil::AnalyzeStop(), lldb_private::ThreadPlanStepInRange::DoPlanExplainsStop(), and lldb_private::ThreadPlanStepOut::DoPlanExplainsStop().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanStepInRange.
Definition at line 474 of file ThreadPlan.h.
|
virtual |
Reimplemented in lldb_private::ThreadPlanNull, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallUserExpression, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, and lldb_private::AppleThreadPlanStepThroughDirectDispatch.
Definition at line 72 of file ThreadPlan.cpp.
References m_plan_complete, and m_plan_complete_mutex.
Referenced by lldb_private::ThreadPlanCallFunction::MischiefManaged(), lldb_private::ThreadPlanCallUserExpression::MischiefManaged(), lldb_private::ThreadPlanRunToAddress::MischiefManaged(), lldb_private::ThreadPlanStepInstruction::MischiefManaged(), lldb_private::ThreadPlanStepOut::MischiefManaged(), lldb_private::ThreadPlanStepOverBreakpoint::MischiefManaged(), lldb_private::ThreadPlanStepRange::MischiefManaged(), lldb_private::ThreadPlanStepThrough::MischiefManaged(), lldb_private::ThreadPlanStepUntil::MischiefManaged(), and lldb_private::Thread::ShouldStop().
|
virtual |
Reimplemented in lldb_private::ThreadPlanNull, and lldb_private::ThreadPlanBase.
Definition at line 155 of file ThreadPlan.cpp.
References IsControllingPlan(), and m_okay_to_discard.
Referenced by lldb_private::Thread::ShouldStop().
|
privatedelete |
bool ThreadPlan::PlanExplainsStop | ( | Event * | event_ptr | ) |
Definition at line 51 of file ThreadPlan.cpp.
References CachePlanExplainsStop(), DoPlanExplainsStop(), lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolYes, and m_cached_plan_explains_stop.
Referenced by lldb_private::Thread::ShouldReportStop(), and lldb_private::Thread::ShouldStop().
|
inline |
Definition at line 433 of file ThreadPlan.h.
References m_plan_succeeded.
Referenced by lldb_private::ThreadPlanCallFunction::DidPop(), lldb_private::ThreadPlanCallUserExpression::MischiefManaged(), and lldb_private::ThreadPlanCallFunction::~ThreadPlanCallFunction().
|
inlineprotected |
Definition at line 502 of file ThreadPlan.h.
References GetThread(), and lldb_private::Thread::PushPlan().
Referenced by lldb_private::ThreadPlanStepThrough::DidPush(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::InitializeFunctionCaller(), lldb_private::ThreadPlanStepThrough::ShouldStop(), and lldb_private::AppleThreadPlanStepThroughObjCTrampoline::ShouldStop().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallFunction.
Definition at line 472 of file ThreadPlan.h.
lldb::StateType ThreadPlan::RunState | ( | ) |
Definition at line 159 of file ThreadPlan.cpp.
References lldb::eStateStepping, GetPlanRunState(), and m_tracer_sp.
|
inline |
Definition at line 398 of file ThreadPlan.h.
References m_is_controlling_plan.
Referenced by lldb_private::ThreadPlanCallFunction::ConstructorSetup(), lldb::SBThread::ResumeNewPlan(), lldb_private::ThreadPlanBase::ThreadPlanBase(), lldb_private::ThreadPlanCallOnFunctionExit::ThreadPlanCallOnFunctionExit(), lldb_private::ThreadPlanCallUserExpression::ThreadPlanCallUserExpression(), and lldb_private::ThreadPlanPython::ThreadPlanPython().
|
inline |
Definition at line 476 of file ThreadPlan.h.
References m_iteration_count, and m_takes_iteration_count.
|
inline |
Definition at line 406 of file ThreadPlan.h.
References m_okay_to_discard.
Referenced by lldb_private::ThreadPlanCallFunction::ConstructorSetup(), lldb_private::ThreadPlanStepOut::QueueInlinedStepPlan(), lldb::SBThread::ResumeNewPlan(), lldb_private::ThreadPlanCallUserExpression::ThreadPlanCallUserExpression(), and lldb_private::ThreadPlanPython::ThreadPlanPython().
void ThreadPlan::SetPlanComplete | ( | bool | success = true | ) |
Definition at line 66 of file ThreadPlan.cpp.
References m_plan_complete, m_plan_complete_mutex, and m_plan_succeeded.
Referenced by lldb_private::ThreadPlanStepUntil::AnalyzeStop(), lldb_private::ThreadPlanCallFunction::BreakpointsExplainStop(), lldb_private::ThreadPlanCallFunction::DoPlanExplainsStop(), lldb_private::ThreadPlanPython::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOut::DoPlanExplainsStop(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoTakedown(), lldb_private::ThreadPlanPython::IsPlanStale(), lldb_private::ThreadPlanStepInstruction::IsPlanStale(), lldb_private::ThreadPlanStepRange::IsPlanStale(), lldb_private::ThreadPlanCallOnFunctionExit::ShouldStop(), lldb_private::ThreadPlanPython::ShouldStop(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanStepInstruction::ShouldStop(), lldb_private::ThreadPlanStepOut::ShouldStop(), lldb_private::ThreadPlanStepOverRange::ShouldStop(), lldb_private::ThreadPlanStepThrough::ShouldStop(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::ShouldStop(), and lldb_private::AppleThreadPlanStepThroughDirectDispatch::ShouldStop().
|
inline |
Definition at line 419 of file ThreadPlan.h.
References m_plan_private.
Referenced by lldb_private::ThreadPlanCallFunction::ConstructorSetup(), and lldb_private::ThreadPlanPython::ThreadPlanPython().
|
inlineprotected |
Definition at line 521 of file ThreadPlan.h.
References GetThread(), and lldb_private::Thread::SetStopInfo().
Referenced by lldb_private::ThreadPlanStepInRange::DoWillResume().
|
virtual |
Reimplemented in lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanPython, and lldb_private::ThreadPlanRunToAddress.
Definition at line 111 of file ThreadPlan.cpp.
|
inline |
Definition at line 439 of file ThreadPlan.h.
References m_tracer_sp.
Referenced by lldb_private::ThreadPlanBase::ThreadPlanBase().
|
inlinevirtual |
Returns whether this thread plan overrides the ShouldStop
of subsequently processed plans.
When processing the thread plan stack, this function gives plans the ability to continue - even when subsequent plans return true from ShouldStop
.
Reimplemented in lldb_private::ThreadPlanStepOverBreakpoint.
Definition at line 375 of file ThreadPlan.h.
Referenced by lldb_private::Thread::ShouldStop().
Definition at line 94 of file ThreadPlan.cpp.
References lldb_private::eVoteNoOpinion, GetPreviousPlan(), m_report_run_vote, and ShouldReportRun().
Referenced by lldb_private::Thread::ShouldReportRun(), and ShouldReportRun().
Reimplemented in lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, and lldb_private::ThreadPlanStepRange.
Definition at line 79 of file ThreadPlan.cpp.
References lldb_private::eVoteNoOpinion, lldb_private::GetLog(), GetPreviousPlan(), LLDB_LOG, m_report_stop_vote, ShouldReportStop(), and lldb_private::Step.
Referenced by lldb_private::Thread::ShouldReportStop(), ShouldReportStop(), and lldb_private::ThreadPlanCallFunction::ShouldReportStop().
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint.
Definition at line 388 of file ThreadPlan.h.
Referenced by lldb_private::Thread::ShouldStop().
|
pure virtual |
Implemented in lldb_private::ThreadPlanNull, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanStepInRange, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::AppleThreadPlanStepThroughDirectDispatch, lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint, and lldb_private::ThreadPlanStepRange.
Referenced by lldb_private::Thread::ShouldStop().
|
virtual |
Reimplemented in lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, and lldb_private::AppleThreadPlanStepThroughDirectDispatch.
Definition at line 105 of file ThreadPlan.cpp.
References GetPreviousPlan(), and StopOthers().
Referenced by StopOthers(), and WillResume().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallFunction, and lldb_private::ThreadPlanStepOverBreakpoint.
Definition at line 412 of file ThreadPlan.h.
|
inline |
Definition at line 356 of file ThreadPlan.h.
References m_tracer_sp.
Referenced by lldb_private::ThreadPlanBase::DoPlanExplainsStop(), and lldb_private::Thread::ShouldStop().
|
pure virtual |
Returns whether this plan could be successfully created.
[in] | error | A stream to which to print some reason why the plan could not be created. Can be NULL. |
Implemented in lldb_private::ThreadPlanNull, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, and lldb_private::AppleThreadPlanStepThroughObjCTrampoline.
bool ThreadPlan::WillResume | ( | lldb::StateType | resume_state, |
bool | current_plan | ||
) |
Definition at line 116 of file ThreadPlan.cpp.
References ClearThreadCache(), DoWillResume(), lldb_private::eLazyBoolCalculate, fp, lldb_private::RegisterContext::GetFP(), lldb_private::GetLog(), lldb_private::RegisterContext::GetPC(), lldb_private::Thread::GetRegisterContext(), lldb_private::RegisterContext::GetSP(), GetThread(), LLDB_LOGF, m_cached_plan_explains_stop, m_name, m_tid, pc, sp, lldb_private::StateAsCString(), lldb_private::Step, and StopOthers().
Referenced by lldb_private::Thread::ShouldResume().
|
pure virtual |
Implemented in lldb_private::ThreadPlanNull, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanPython, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, lldb_private::ThreadPlanStepUntil, and lldb_private::AppleThreadPlanStepThroughObjCTrampoline.
Referenced by lldb_private::Thread::ShouldStop(), and lldb_private::Thread::WillStop().
|
private |
Definition at line 552 of file ThreadPlan.h.
Referenced by CachePlanExplainsStop(), PlanExplainsStop(), and WillResume().
|
protected |
Definition at line 535 of file ThreadPlan.h.
Referenced by lldb_private::ThreadPlanStepUntil::Clear(), lldb_private::ThreadPlanStepThrough::ClearBackstopBreakpoint(), lldb_private::ThreadPlanStepRange::ClearNextBranchBreakpoint(), lldb_private::ThreadPlanRunToAddress::SetInitialBreakpoints(), lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint(), lldb_private::ThreadPlanStepOut::ThreadPlanStepOut(), lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough(), lldb_private::ThreadPlanStepUntil::ThreadPlanStepUntil(), lldb_private::ThreadPlanRunToAddress::ValidatePlan(), lldb_private::ThreadPlanStepOut::ValidatePlan(), lldb_private::ThreadPlanStepRange::ValidatePlan(), lldb_private::ThreadPlanStepThrough::ValidatePlan(), lldb_private::ThreadPlanStepUntil::ValidatePlan(), and lldb_private::ThreadPlanRunToAddress::~ThreadPlanRunToAddress().
|
private |
Definition at line 556 of file ThreadPlan.h.
Referenced by IsControllingPlan(), and SetIsControllingPlan().
|
protected |
Definition at line 536 of file ThreadPlan.h.
Referenced by SetIterationCount(), and lldb_private::ThreadPlanStepInstruction::ShouldStop().
|
private |
Definition at line 549 of file ThreadPlan.h.
Referenced by GetKind().
|
private |
Definition at line 550 of file ThreadPlan.h.
Referenced by GetName(), and WillResume().
|
private |
Definition at line 555 of file ThreadPlan.h.
Referenced by OkayToDiscard(), and SetOkayToDiscard().
|
private |
Definition at line 553 of file ThreadPlan.h.
Referenced by IsPlanComplete(), MischiefManaged(), and SetPlanComplete().
|
private |
Definition at line 551 of file ThreadPlan.h.
Referenced by IsPlanComplete(), MischiefManaged(), and SetPlanComplete().
|
private |
Definition at line 554 of file ThreadPlan.h.
Referenced by GetPrivate(), and SetPrivate().
|
private |
Definition at line 557 of file ThreadPlan.h.
Referenced by PlanSucceeded(), and SetPlanComplete().
|
protected |
Definition at line 530 of file ThreadPlan.h.
Referenced by lldb_private::ThreadPlanStepUntil::AnalyzeStop(), lldb_private::ThreadPlanStepOut::CalculateReturnValue(), lldb_private::ThreadPlanStepThrough::ClearBackstopBreakpoint(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::DidPush(), lldb_private::ThreadPlanCallFunction::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOut::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOverBreakpoint::DoWillResume(), lldb_private::ThreadPlanStepOverRange::DoWillResume(), lldb_private::ThreadPlanStepOut::GetDescription(), lldb_private::ThreadPlanCallUserExpression::GetRealStopInfo(), lldb_private::ThreadPlanPython::GetScriptInterpreter(), GetTarget(), GetThread(), lldb_private::ThreadPlanStepThrough::HitOurBackstopBreakpoint(), lldb_private::ThreadPlanStepThrough::LookForPlanToStepThroughFromCurrentPC(), lldb_private::ThreadPlanStepRange::NextRangeBreakpointExplainsStop(), lldb_private::ThreadPlanStepOverBreakpoint::ReenableBreakpointSite(), lldb_private::ThreadPlanCallFunction::SetBreakpoints(), lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint(), lldb_private::ThreadPlanCallFunction::SetReturnValue(), lldb_private::ThreadPlanCallFunctionUsingABI::SetReturnValue(), lldb_private::ThreadPlanStepOut::ThreadPlanStepOut(), and lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough().
|
protected |
Definition at line 533 of file ThreadPlan.h.
Referenced by lldb_private::ThreadPlanBase::DoWillResume(), ShouldReportRun(), and lldb_private::ThreadPlanBase::ShouldStop().
|
protected |
Definition at line 532 of file ThreadPlan.h.
Referenced by lldb_private::ThreadPlanBase::DoWillResume(), ShouldReportStop(), and lldb_private::ThreadPlanBase::ShouldStop().
|
protected |
Definition at line 529 of file ThreadPlan.h.
Referenced by lldb_private::ThreadPlanStepOut::DoPlanExplainsStop(), lldb_private::ThreadPlanStepInRange::GetDescription(), lldb_private::ThreadPlanStepInstruction::GetDescription(), lldb_private::ThreadPlanStepOverRange::GetDescription(), lldb_private::ThreadPlanNull::GetStatus(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanStepInstruction::ShouldStop(), lldb_private::ThreadPlanStepOut::ShouldStop(), and lldb_private::ThreadPlanStepOverRange::ShouldStop().
|
protected |
Definition at line 534 of file ThreadPlan.h.
Referenced by SetIterationCount(), and lldb_private::ThreadPlanStepInstruction::ThreadPlanStepInstruction().
|
private |
Definition at line 546 of file ThreadPlan.h.
Referenced by ClearThreadCache(), GetThread(), and lldb_private::ThreadPlanBase::ThreadPlanBase().
|
protected |
Definition at line 531 of file ThreadPlan.h.
Referenced by lldb_private::ThreadPlanNull::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoTakedown(), lldb_private::ThreadPlanNull::GetPlanRunState(), GetThread(), lldb_private::ThreadPlanNull::MischiefManaged(), lldb_private::ThreadPlanRunToAddress::SetInitialBreakpoints(), lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint(), lldb_private::ThreadPlanNull::ShouldStop(), lldb_private::ThreadPlanBase::ShouldStop(), lldb_private::ThreadPlanStepOut::ThreadPlanStepOut(), lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough(), lldb_private::ThreadPlanStepUntil::ThreadPlanStepUntil(), lldb_private::ThreadPlanNull::ValidatePlan(), WillResume(), and lldb_private::ThreadPlanNull::WillStop().
|
private |
Definition at line 559 of file ThreadPlan.h.
Referenced by DoTraceLog(), GetThreadPlanTracer(), RunState(), SetThreadPlanTracer(), and TracerExplainsStop().