LLDB mainline
|
#include <ThreadPlan.h>
Public Types | |
enum | ThreadPlanKind { eKindGeneric , eKindNull , eKindBase , eKindCallFunction , eKindPython , eKindStepInstruction , eKindStepOut , eKindStepOverBreakpoint , eKindStepOverRange , eKindStepInRange , eKindRunToAddress , eKindStepThrough , eKindStepUntil , eKindSingleThreadTimeout } |
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 | SupportsResumeOthers () |
virtual bool | ShouldRunBeforePublicStop () |
bool | WillResume (lldb::StateType resume_state, bool current_plan) |
virtual bool | WillStop ()=0 |
bool | IsControllingPlan () |
virtual bool | IsLeafPlan () |
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) |
virtual lldb::StateType | GetPlanRunState ()=0 |
virtual lldb::RunDirection | GetDirection () const |
Public Member Functions inherited from lldb_private::UserID | |
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) |
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 |
Protected Attributes inherited from lldb_private::UserID | |
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 296 of file ThreadPlan.h.
Definition at line 301 of file ThreadPlan.h.
|
virtualdefault |
|
protected |
Definition at line 23 of file ThreadPlan.cpp.
References lldb_private::eLazyBoolCalculate, lldb_private::UserID::GetID(), GetNextID(), m_cached_plan_explains_stop, m_could_not_resolve_hw_bp, m_is_controlling_plan, m_kind, m_name, m_okay_to_discard, m_plan_complete, m_plan_complete_mutex, m_plan_private, m_plan_succeeded, m_process, m_report_run_vote, m_report_stop_vote, m_takes_iteration_count, m_thread, m_tid, and lldb_private::UserID::SetID().
Referenced by lldb_private::AppleThreadPlanStepThroughObjCTrampoline::AppleThreadPlanStepThroughObjCTrampoline(), GetPreviousPlan(), operator=(), lldb_private::ScriptedThreadPlan::ScriptedThreadPlan(), ShouldReportRun(), ShouldReportStop(), StopOthers(), ThreadPlan(), lldb_private::ThreadPlanBase::ThreadPlanBase(), lldb_private::ThreadPlanCallFunction::ThreadPlanCallFunction(), lldb_private::ThreadPlanCallOnFunctionExit::ThreadPlanCallOnFunctionExit(), lldb_private::ThreadPlanNull::ThreadPlanNull(), lldb_private::ThreadPlanRunToAddress::ThreadPlanRunToAddress(), lldb_private::ThreadPlanRunToAddress::ThreadPlanRunToAddress(), lldb_private::ThreadPlanRunToAddress::ThreadPlanRunToAddress(), lldb_private::ThreadPlanSingleThreadTimeout::ThreadPlanSingleThreadTimeout(), lldb_private::ThreadPlanStepInstruction::ThreadPlanStepInstruction(), lldb_private::ThreadPlanStepOut::ThreadPlanStepOut(), lldb_private::ThreadPlanStepOut::ThreadPlanStepOut(), lldb_private::ThreadPlanStepOverBreakpoint::ThreadPlanStepOverBreakpoint(), lldb_private::ThreadPlanStepRange::ThreadPlanStepRange(), lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough(), and lldb_private::ThreadPlanStepUntil::ThreadPlanStepUntil().
|
privatedelete |
References ThreadPlan().
|
inlineprivate |
Definition at line 564 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::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallUserExpression, lldb_private::ThreadPlanSingleThreadTimeout, and lldb_private::ThreadPlanStepOverBreakpoint.
Definition at line 153 of file ThreadPlan.cpp.
|
virtual |
Reimplemented in lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanCallUserExpression, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepRange, and lldb_private::ThreadPlanStepThrough.
Definition at line 151 of file ThreadPlan.cpp.
|
protectedpure virtual |
Implemented in lldb_private::AppleThreadPlanStepThroughDirectDispatch, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanNull, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepInRange, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
Referenced by PlanExplainsStop().
|
inline |
Definition at line 464 of file ThreadPlan.h.
References m_tracer_sp.
Referenced by lldb_private::Thread::ShouldStop().
|
inlineprotectedvirtual |
Reimplemented in lldb_private::AppleThreadPlanStepThroughDirectDispatch, lldb_private::ScriptedThreadPlan, lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanStepInRange, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
Definition at line 520 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::AppleThreadPlanStepThroughDirectDispatch, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallFunctionUsingABI, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanCallUserExpression, lldb_private::ThreadPlanNull, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepInRange, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanBase.
Definition at line 509 of file ThreadPlan.h.
References lldb::eRunForward.
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallUserExpression.
Definition at line 485 of file ThreadPlan.h.
|
inline |
Definition at line 446 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::SetupToStepOverBreakpointIfNeeded().
|
inline |
Returns the name of this thread plan.
Definition at line 324 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().
|
pure virtual |
Implemented in lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanNull, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
Referenced by lldb_private::ThreadPlanSingleThreadTimeout::GetPlanRunState(), and RunState().
|
inlineprotected |
Definition at line 539 of file ThreadPlan.h.
References lldb_private::Thread::GetPreviousPlan(), GetThread(), and ThreadPlan().
Referenced by lldb_private::ThreadPlanSingleThreadTimeout::GetPlanRunState(), lldb_private::ThreadPlanSingleThreadTimeout::HandleEvent(), lldb_private::ThreadPlanSingleThreadTimeout::SetStopOthers(), ShouldReportRun(), ShouldReportStop(), StopOthers(), and lldb_private::ThreadPlanSingleThreadTimeout::StopOthers().
|
inline |
Definition at line 438 of file ThreadPlan.h.
References m_plan_private.
|
inlineprotected |
Definition at line 544 of file ThreadPlan.h.
References lldb_private::Thread::GetPrivateStopInfo(), and GetThread().
Referenced by lldb_private::ThreadPlanStepUntil::AnalyzeStop(), lldb_private::ThreadPlanCallFunction::BreakpointsExplainStop(), lldb_private::ThreadPlanStepRange::ClearNextBranchBreakpointExplainedStop(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::DoPlanExplainsStop(), 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::ThreadPlanCallFunction::DoTakedown(), lldb_private::ThreadPlanCallFunction::GetRealStopInfo(), lldb_private::ThreadPlanBase::ShouldStop(), lldb_private::ThreadPlanStepOut::ShouldStop(), and lldb_private::ThreadPlanStepUntil::ShouldStop().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallFunction, and lldb_private::ThreadPlanStepOut.
Definition at line 474 of file ThreadPlan.h.
Target & ThreadPlan::GetTarget | ( | ) |
Definition at line 38 of file ThreadPlan.cpp.
References 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::ThreadPlanStepOut::SetupReturnAddress(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanStepInstruction::ShouldStop(), lldb_private::ThreadPlanStepOverRange::ShouldStop(), lldb_private::ThreadPlanRunToAddress::ThreadPlanRunToAddress(), 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 m_process.
Thread & ThreadPlan::GetThread | ( | ) |
Returns the Thread that is using this thread plan.
Definition at line 42 of file ThreadPlan.cpp.
References 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::AppleThreadPlanStepThroughDirectDispatch::DoPlanExplainsStop(), lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint::DoPlanExplainsStop(), lldb_private::ThreadPlanNull::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOut::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOverBreakpoint::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoTakedown(), lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint::DoWillResume(), lldb_private::ThreadPlanStepInRange::DoWillResume(), lldb_private::ThreadPlanStepOverRange::DoWillResume(), lldb_private::ThreadPlanStepInRange::FrameMatchesAvoidCriteria(), lldb_private::ThreadPlanNull::GetPlanRunState(), GetPreviousPlan(), GetPrivateStopInfo(), lldb_private::ThreadPlanSingleThreadTimeout::GetRemainingTimeoutMilliSeconds(), lldb_private::ThreadPlanSingleThreadTimeout::HandleEvent(), lldb_private::ThreadPlanSingleThreadTimeout::HandleTimeout(), lldb_private::ThreadPlanStepThrough::HitOurBackstopBreakpoint(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::InitializeFunctionCaller(), lldb_private::ThreadPlanStepRange::InRange(), lldb_private::ThreadPlanStepRange::InSymbol(), lldb_private::ThreadPlanStepInstruction::IsPlanStale(), lldb_private::ThreadPlanStepOut::IsPlanStale(), lldb_private::ThreadPlanStepOverBreakpoint::IsPlanStale(), lldb_private::ThreadPlanStepRange::IsPlanStale(), lldb_private::ThreadPlanSingleThreadTimeout::IsTimeoutAsyncInterrupt(), lldb_private::ThreadPlanStepInRange::IsVirtualStep(), lldb_private::ThreadPlanStepThrough::LookForPlanToStepThroughFromCurrentPC(), lldb_private::ThreadPlanCallUserExpression::MischiefManaged(), lldb_private::ThreadPlanNull::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::ThreadPlanStepOut::SetupReturnAddress(), lldb_private::ThreadPlanStepInstruction::SetUpState(), lldb_private::ThreadPlanBase::ShouldReportStop(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::ShouldStop(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::ShouldStop(), lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint::ShouldStop(), lldb_private::ThreadPlanBase::ShouldStop(), lldb_private::ThreadPlanNull::ShouldStop(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanStepInstruction::ShouldStop(), lldb_private::ThreadPlanStepOut::ShouldStop(), lldb_private::ThreadPlanStepOverRange::ShouldStop(), lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough(), lldb_private::ThreadPlanSingleThreadTimeout::TimeoutThreadFunc(), lldb_private::ThreadPlanNull::ValidatePlan(), WillResume(), and lldb_private::ThreadPlanNull::WillStop().
|
inline |
Definition at line 458 of file ThreadPlan.h.
References m_tracer_sp.
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanBase, and lldb_private::ThreadPlanNull.
Definition at line 456 of file ThreadPlan.h.
Referenced by lldb_private::Thread::ShouldReportStop(), and lldb_private::Thread::ShouldStop().
|
inline |
Definition at line 412 of file ThreadPlan.h.
References m_is_controlling_plan.
Referenced by lldb_private::ThreadPlanStepOverRange::DidPush(), lldb_private::ThreadPlanStepOverRange::DoWillResume(), OkayToDiscard(), and lldb_private::Thread::ShouldStop().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanSingleThreadTimeout.
Definition at line 417 of file ThreadPlan.h.
Referenced by 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::AppleThreadPlanStepThroughDirectDispatch::MischiefManaged(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::MischiefManaged(), lldb_private::ScriptedThreadPlan::MischiefManaged(), lldb_private::ThreadPlanCallFunction::MischiefManaged(), lldb_private::ThreadPlanCallUserExpression::MischiefManaged(), lldb_private::ThreadPlanStepInstruction::MischiefManaged(), lldb_private::ThreadPlanStepOut::MischiefManaged(), lldb_private::ThreadPlanStepRange::MischiefManaged(), lldb_private::ThreadPlanStepThrough::MischiefManaged(), lldb_private::ThreadPlanStepUntil::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::ScriptedThreadPlan, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, and lldb_private::ThreadPlanStepRange.
Definition at line 452 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::eStopReasonInterrupt, 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 495 of file ThreadPlan.h.
|
virtual |
Reimplemented in lldb_private::AppleThreadPlanStepThroughDirectDispatch, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallUserExpression, lldb_private::ThreadPlanNull, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
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::ThreadPlanBase, and lldb_private::ThreadPlanNull.
Definition at line 155 of file ThreadPlan.cpp.
References IsControllingPlan(), and m_okay_to_discard.
Referenced by lldb_private::Thread::ShouldStop().
|
privatedelete |
References ThreadPlan().
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 454 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 529 of file ThreadPlan.h.
References GetThread(), and lldb_private::Thread::PushPlan().
Referenced by lldb_private::ThreadPlanStepThrough::DidPush(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::InitializeFunctionCaller(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::ShouldStop(), and lldb_private::ThreadPlanStepThrough::ShouldStop().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallFunction.
Definition at line 493 of file ThreadPlan.h.
lldb::StateType ThreadPlan::RunState | ( | ) |
Definition at line 159 of file ThreadPlan.cpp.
References lldb::eStateStepping, GetPlanRunState(), and m_tracer_sp.
Definition at line 419 of file ThreadPlan.h.
References m_is_controlling_plan.
Referenced by lldb_private::ThreadPlanCallFunction::ConstructorSetup(), ResumeNewPlan(), lldb_private::ScriptedThreadPlan::ScriptedThreadPlan(), lldb_private::ThreadPlanBase::ThreadPlanBase(), lldb_private::ThreadPlanCallOnFunctionExit::ThreadPlanCallOnFunctionExit(), and lldb_private::ThreadPlanCallUserExpression::ThreadPlanCallUserExpression().
|
inline |
Definition at line 497 of file ThreadPlan.h.
References m_iteration_count, and m_takes_iteration_count.
|
inline |
Definition at line 427 of file ThreadPlan.h.
References m_okay_to_discard.
Referenced by lldb_private::ThreadPlanCallFunction::ConstructorSetup(), lldb_private::ThreadPlanStepOut::QueueInlinedStepPlan(), ResumeNewPlan(), lldb_private::ScriptedThreadPlan::ScriptedThreadPlan(), and lldb_private::ThreadPlanCallUserExpression::ThreadPlanCallUserExpression().
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::ScriptedThreadPlan::DidPush(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::DoPlanExplainsStop(), lldb_private::ScriptedThreadPlan::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoPlanExplainsStop(), lldb_private::ThreadPlanStepOut::DoPlanExplainsStop(), lldb_private::ThreadPlanCallFunction::DoTakedown(), lldb_private::ScriptedThreadPlan::IsPlanStale(), lldb_private::ThreadPlanStepInstruction::IsPlanStale(), lldb_private::ThreadPlanStepRange::IsPlanStale(), lldb_private::ScriptedThreadPlan::ScriptedThreadPlan(), lldb_private::AppleThreadPlanStepThroughDirectDispatch::ShouldStop(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::ShouldStop(), lldb_private::ScriptedThreadPlan::ShouldStop(), lldb_private::ThreadPlanCallOnFunctionExit::ShouldStop(), lldb_private::ThreadPlanStepInRange::ShouldStop(), lldb_private::ThreadPlanStepInstruction::ShouldStop(), lldb_private::ThreadPlanStepOut::ShouldStop(), lldb_private::ThreadPlanStepOverRange::ShouldStop(), and lldb_private::ThreadPlanStepThrough::ShouldStop().
|
inline |
Definition at line 440 of file ThreadPlan.h.
References m_plan_private.
Referenced by lldb_private::ThreadPlanCallFunction::ConstructorSetup(), and lldb_private::ScriptedThreadPlan::ScriptedThreadPlan().
|
inlineprotected |
Definition at line 548 of file ThreadPlan.h.
References GetThread(), and lldb_private::Thread::SetStopInfo().
Referenced by lldb_private::ThreadPlanStepInRange::DoWillResume().
|
virtual |
Reimplemented in lldb_private::ScriptedThreadPlan, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepOut, and lldb_private::ThreadPlanStepOverRange.
Definition at line 111 of file ThreadPlan.cpp.
Referenced by lldb_private::ThreadPlanSingleThreadTimeout::HandleEvent(), and lldb_private::ThreadPlanSingleThreadTimeout::SetStopOthers().
|
inline |
Definition at line 460 of file ThreadPlan.h.
References m_tracer_sp.
Referenced by lldb_private::ThreadPlanBase::ThreadPlanBase().
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 385 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, ShouldReportRun(), and ThreadPlan().
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(), lldb_private::Step, and ThreadPlan().
Referenced by lldb_private::Thread::ShouldReportStop(), ShouldReportStop(), and lldb_private::ThreadPlanCallFunction::ShouldReportStop().
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint.
Definition at line 404 of file ThreadPlan.h.
Referenced by lldb_private::Thread::ShouldStop().
Implemented in lldb_private::AppleThreadPlanStepThroughDirectDispatch, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanNull, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepInRange, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepOverRange, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
Referenced by lldb_private::Thread::ShouldStop().
|
virtual |
Reimplemented in lldb_private::AppleThreadPlanStepThroughDirectDispatch, lldb_private::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
Definition at line 105 of file ThreadPlan.cpp.
References GetPreviousPlan(), StopOthers(), and ThreadPlan().
Referenced by StopOthers(), lldb_private::ThreadPlanSingleThreadTimeout::StopOthers(), and WillResume().
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanStepOverBreakpoint.
Definition at line 402 of file ThreadPlan.h.
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallFunction, and lldb_private::ThreadPlanStepOverBreakpoint.
Definition at line 433 of file ThreadPlan.h.
|
inline |
Definition at line 366 of file ThreadPlan.h.
References m_tracer_sp.
Referenced by lldb_private::ThreadPlanBase::DoPlanExplainsStop(), and lldb_private::Thread::ShouldStop().
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::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanNull, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
References error().
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::AppleThreadPlanStepThroughObjCTrampoline, lldb_private::ScriptedThreadPlan, lldb_private::ThreadPlanBase, lldb_private::ThreadPlanCallFunction, lldb_private::ThreadPlanCallOnFunctionExit, lldb_private::ThreadPlanNull, lldb_private::ThreadPlanRunToAddress, lldb_private::ThreadPlanSingleThreadTimeout, lldb_private::ThreadPlanStepInstruction, lldb_private::ThreadPlanStepOut, lldb_private::ThreadPlanStepOverBreakpoint, lldb_private::ThreadPlanStepRange, lldb_private::ThreadPlanStepThrough, and lldb_private::ThreadPlanStepUntil.
Referenced by lldb_private::Thread::ShouldStop(), and lldb_private::Thread::WillStop().
|
private |
Definition at line 577 of file ThreadPlan.h.
Referenced by CachePlanExplainsStop(), PlanExplainsStop(), ThreadPlan(), and WillResume().
|
protected |
Definition at line 560 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::SetupReturnAddress(), ThreadPlan(), 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 581 of file ThreadPlan.h.
Referenced by IsControllingPlan(), SetIsControllingPlan(), and ThreadPlan().
|
protected |
Definition at line 561 of file ThreadPlan.h.
Referenced by SetIterationCount(), and lldb_private::ThreadPlanStepInstruction::ShouldStop().
|
private |
Definition at line 574 of file ThreadPlan.h.
Referenced by GetKind(), and ThreadPlan().
|
private |
Definition at line 575 of file ThreadPlan.h.
Referenced by GetName(), ThreadPlan(), and WillResume().
|
private |
Definition at line 580 of file ThreadPlan.h.
Referenced by OkayToDiscard(), SetOkayToDiscard(), and ThreadPlan().
|
private |
Definition at line 578 of file ThreadPlan.h.
Referenced by IsPlanComplete(), MischiefManaged(), SetPlanComplete(), and ThreadPlan().
|
private |
Definition at line 576 of file ThreadPlan.h.
Referenced by IsPlanComplete(), MischiefManaged(), SetPlanComplete(), and ThreadPlan().
|
private |
Definition at line 579 of file ThreadPlan.h.
Referenced by GetPrivate(), SetPrivate(), and ThreadPlan().
|
private |
Definition at line 582 of file ThreadPlan.h.
Referenced by PlanSucceeded(), SetPlanComplete(), and ThreadPlan().
|
protected |
Definition at line 555 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::ThreadPlanBase::GetDirection(), lldb_private::ThreadPlanCallUserExpression::GetRealStopInfo(), lldb_private::ScriptedThreadPlan::GetScriptInterpreter(), GetTarget(), GetTarget(), GetThread(), lldb_private::ThreadPlanSingleThreadTimeout::HandleTimeout(), lldb_private::ThreadPlanStepThrough::HitOurBackstopBreakpoint(), lldb_private::ThreadPlanStepRange::IsNextBranchBreakpointStop(), 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::SetupReturnAddress(), ThreadPlan(), and lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough().
|
protected |
Definition at line 558 of file ThreadPlan.h.
Referenced by lldb_private::ThreadPlanBase::DoWillResume(), ShouldReportRun(), lldb_private::ThreadPlanBase::ShouldStop(), and ThreadPlan().
|
protected |
Definition at line 557 of file ThreadPlan.h.
Referenced by lldb_private::ThreadPlanBase::DoWillResume(), ShouldReportStop(), lldb_private::ThreadPlanBase::ShouldStop(), and ThreadPlan().
|
protected |
Definition at line 554 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 559 of file ThreadPlan.h.
Referenced by SetIterationCount(), ThreadPlan(), and lldb_private::ThreadPlanStepInstruction::ThreadPlanStepInstruction().
|
private |
Definition at line 571 of file ThreadPlan.h.
Referenced by ClearThreadCache(), GetThread(), ThreadPlan(), and lldb_private::ThreadPlanBase::ThreadPlanBase().
|
protected |
Definition at line 556 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::ThreadPlanStepOut::SetupReturnAddress(), lldb_private::ThreadPlanBase::ShouldStop(), lldb_private::ThreadPlanNull::ShouldStop(), ThreadPlan(), lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough(), lldb_private::ThreadPlanStepUntil::ThreadPlanStepUntil(), lldb_private::ThreadPlanNull::ValidatePlan(), WillResume(), and lldb_private::ThreadPlanNull::WillStop().
|
private |
Definition at line 584 of file ThreadPlan.h.
Referenced by DoTraceLog(), GetThreadPlanTracer(), RunState(), SetThreadPlanTracer(), and TracerExplainsStop().