LLDB mainline
|
#include <ThreadPlanStepInRange.h>
Public Member Functions | |
ThreadPlanStepInRange (Thread &thread, const AddressRange &range, const SymbolContext &addr_context, const char *step_into_target, lldb::RunMode stop_others, LazyBool step_in_avoids_code_without_debug_info, LazyBool step_out_avoids_code_without_debug_info) | |
~ThreadPlanStepInRange () override | |
void | GetDescription (Stream *s, lldb::DescriptionLevel level) override |
Print a description of this thread to the stream s. | |
bool | ShouldStop (Event *event_ptr) override |
void | SetAvoidRegexp (const char *name) |
bool | IsVirtualStep () override |
Public Member Functions inherited from lldb_private::ThreadPlanStepRange | |
ThreadPlanStepRange (ThreadPlanKind kind, const char *name, Thread &thread, const AddressRange &range, const SymbolContext &addr_context, lldb::RunMode stop_others, bool given_ranges_only=false) | |
~ThreadPlanStepRange () override | |
void | GetDescription (Stream *s, lldb::DescriptionLevel level) override=0 |
Print a description of this thread to the stream s. | |
bool | ValidatePlan (Stream *error) override |
Returns whether this plan could be successfully created. | |
bool | ShouldStop (Event *event_ptr) override=0 |
Vote | ShouldReportStop (Event *event_ptr) override |
bool | StopOthers () override |
lldb::StateType | GetPlanRunState () override |
bool | WillStop () override |
bool | MischiefManaged () override |
void | DidPush () override |
bool | IsPlanStale () override |
void | AddRange (const AddressRange &new_range) |
Public Member Functions inherited from lldb_private::ThreadPlan | |
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 () |
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 |
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. | |
Public Member Functions inherited from lldb_private::ThreadPlanShouldStopHere | |
ThreadPlanShouldStopHere (ThreadPlan *owner) | |
ThreadPlanShouldStopHere (ThreadPlan *owner, const ThreadPlanShouldStopHereCallbacks *callbacks, void *baton=nullptr) | |
virtual | ~ThreadPlanShouldStopHere () |
void | SetShouldStopHereCallbacks (const ThreadPlanShouldStopHereCallbacks *callbacks, void *baton) |
void | ClearShouldStopHereCallbacks () |
bool | InvokeShouldStopHereCallback (lldb::FrameComparison operation, Status &status) |
lldb::ThreadPlanSP | CheckShouldStopHereAndQueueStepOut (lldb::FrameComparison operation, Status &status) |
lldb_private::Flags & | GetFlags () |
const lldb_private::Flags & | GetFlags () const |
Static Public Member Functions | |
static void | SetDefaultFlagValue (uint32_t new_value) |
static uint32_t | GetDefaultFlagsValue () |
Static Protected Member Functions | |
static bool | DefaultShouldStopHereCallback (ThreadPlan *current_plan, Flags &flags, lldb::FrameComparison operation, Status &status, void *baton) |
Static Protected Member Functions inherited from lldb_private::ThreadPlanShouldStopHere | |
static bool | DefaultShouldStopHereCallback (ThreadPlan *current_plan, Flags &flags, lldb::FrameComparison operation, Status &status, void *baton) |
static lldb::ThreadPlanSP | DefaultStepFromHereCallback (ThreadPlan *current_plan, Flags &flags, lldb::FrameComparison operation, Status &status, void *baton) |
Private Member Functions | |
void | SetupAvoidNoDebug (LazyBool step_in_avoids_code_without_debug_info, LazyBool step_out_avoids_code_without_debug_info) |
ThreadPlanStepInRange (const ThreadPlanStepInRange &)=delete | |
const ThreadPlanStepInRange & | operator= (const ThreadPlanStepInRange &)=delete |
Private Attributes | |
lldb::ThreadPlanSP | m_sub_plan_sp |
std::unique_ptr< RegularExpression > | m_avoid_regexp_up |
bool | m_step_past_prologue |
bool | m_virtual_step |
ConstString | m_step_into_target |
Static Private Attributes | |
static uint32_t | s_default_flag_values |
Definition at line 20 of file ThreadPlanStepInRange.h.
ThreadPlanStepInRange::ThreadPlanStepInRange | ( | Thread & | thread, |
const AddressRange & | range, | ||
const SymbolContext & | addr_context, | ||
const char * | step_into_target, | ||
lldb::RunMode | stop_others, | ||
LazyBool | step_in_avoids_code_without_debug_info, | ||
LazyBool | step_out_avoids_code_without_debug_info | ||
) |
Definition at line 35 of file ThreadPlanStepInRange.cpp.
References SetCallbacks(), SetFlagsToDefault(), and SetupAvoidNoDebug().
|
overridedefault |
|
privatedelete |
|
staticprotected |
Definition at line 359 of file ThreadPlanStepInRange.cpp.
References lldb_private::ConstString::AsCString(), lldb_private::ThreadPlanShouldStopHere::DefaultShouldStopHereCallback(), lldb::eFrameCompareYounger, lldb_private::ThreadPlan::eKindStepInRange, FrameMatchesAvoidCriteria(), lldb_private::SymbolContext::GetFunctionName(), lldb_private::ThreadPlan::GetKind(), lldb_private::GetLog(), lldb_private::Thread::GetStackFrameAtIndex(), lldb_private::StackFrame::GetSymbolContext(), lldb_private::ThreadPlan::GetThread(), LLDB_LOGF, m_step_into_target, lldb_private::Step, and lldb_private::SymbolContext::symbol.
Referenced by SetCallbacks().
|
overrideprotectedvirtual |
Implements lldb_private::ThreadPlan.
Definition at line 416 of file ThreadPlanStepInRange.cpp.
References lldb::eStopReasonBreakpoint, lldb_private::GetLog(), lldb_private::ThreadPlan::GetPrivateStopInfo(), lldb_private::ThreadPlan::IsUsuallyUnexplainedStopReason(), m_virtual_step, lldb_private::ThreadPlanStepRange::NextRangeBreakpointExplainsStop(), lldb_private::Log::PutCString(), and lldb_private::Step.
|
overrideprotectedvirtual |
Reimplemented from lldb_private::ThreadPlan.
Definition at line 461 of file ThreadPlanStepInRange.cpp.
References lldb_private::StopInfo::CreateStopReasonToTrace(), lldb_private::Thread::DecrementCurrentInlinedDepth(), lldb::eStateStepping, lldb_private::Thread::GetCurrentInlinedDepth(), lldb_private::GetLog(), lldb_private::ThreadPlan::GetThread(), LLDB_LOGF, m_virtual_step, lldb_private::ThreadPlan::SetStopInfo(), and lldb_private::Step.
|
protected |
Definition at line 307 of file ThreadPlanStepInRange.cpp.
References lldb_private::Mangled::ePreferDemangledWithoutArguments, lldb_private::RegularExpression::Execute(), lldb_private::ConstString::GetCString(), lldb_private::FileSpecList::GetFileSpecAtIndex(), lldb_private::SymbolContext::GetFunctionName(), lldb_private::GetLog(), lldb_private::FileSpecList::GetSize(), lldb_private::Thread::GetStackFrameAtIndex(), lldb_private::StackFrame::GetSymbolContext(), lldb_private::ThreadProperties::GetSymbolsToAvoidRegexp(), lldb_private::RegularExpression::GetText(), lldb_private::ThreadPlan::GetThread(), LLDB_LOGF, m_avoid_regexp_up, lldb_private::FileSpec::Match(), lldb_private::SymbolContext::module_sp, lldb_private::Step, and lldb_private::SymbolContext::symbol.
Referenced by DefaultShouldStopHereCallback().
|
inlinestatic |
Definition at line 43 of file ThreadPlanStepInRange.h.
References s_default_flag_values.
Referenced by lldb_private::AppleThreadPlanStepThroughDirectDispatch::SetFlagsToDefault().
|
overridevirtual |
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. |
Implements lldb_private::ThreadPlanStepRange.
Definition at line 91 of file ThreadPlanStepInRange.cpp.
References lldb_private::Status::AsCString(), lldb_private::ConstString::AsCString(), lldb_private::ThreadPlanStepRange::DumpRanges(), lldb_private::LineEntry::DumpStopContext(), lldb::eDescriptionLevelBrief, lldb::eDescriptionLevelVerbose, lldb_private::LineEntry::IsValid(), lldb_private::SymbolContext::line_entry, lldb_private::ThreadPlanStepRange::m_addr_context, lldb_private::ThreadPlan::m_status, m_step_into_target, lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), and lldb_private::Status::Success().
|
overridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Definition at line 486 of file ThreadPlanStepInRange.cpp.
References m_virtual_step.
|
privatedelete |
void ThreadPlanStepInRange::SetAvoidRegexp | ( | const char * | name | ) |
Definition at line 295 of file ThreadPlanStepInRange.cpp.
References m_avoid_regexp_up.
Referenced by CommandObjectThreadStepWithTypeAndScope::DoExecute().
|
inlineprotected |
Definition at line 61 of file ThreadPlanStepInRange.h.
References DefaultShouldStopHereCallback(), and lldb_private::ThreadPlanShouldStopHere::SetShouldStopHereCallbacks().
Referenced by ThreadPlanStepInRange().
|
static |
Definition at line 302 of file ThreadPlanStepInRange.cpp.
References s_default_flag_values.
|
inlineoverrideprotectedvirtual |
Implements lldb_private::ThreadPlanShouldStopHere.
Definition at line 57 of file ThreadPlanStepInRange.h.
References lldb_private::ThreadPlanShouldStopHere::GetFlags(), s_default_flag_values, and lldb_private::Flags::Set().
Referenced by ThreadPlanStepInRange().
|
private |
Definition at line 53 of file ThreadPlanStepInRange.cpp.
References lldb_private::Flags::Clear(), lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, lldb_private::ThreadPlanShouldStopHere::eStepInAvoidNoDebug, lldb_private::ThreadPlanShouldStopHere::eStepOutAvoidNoDebug, lldb_private::ThreadPlanShouldStopHere::GetFlags(), lldb_private::ThreadProperties::GetStepInAvoidsNoDebug(), lldb_private::ThreadProperties::GetStepOutAvoidsNoDebug(), lldb_private::ThreadPlan::GetThread(), and lldb_private::Flags::Set().
Referenced by ThreadPlanStepInRange().
|
overridevirtual |
Implements lldb_private::ThreadPlanStepRange.
Definition at line 128 of file ThreadPlanStepInRange.cpp.
References lldb_private::Stream::AsRawOstream(), lldb_private::ThreadPlanShouldStopHere::CheckShouldStopHereAndQueueStepOut(), lldb_private::ThreadPlanStepRange::ClearNextBranchBreakpoint(), lldb_private::ThreadPlanStepRange::ClearNextBranchBreakpointExplainedStop(), lldb_private::ThreadPlanStepRange::CompareCurrentFrameToStartFrame(), lldb_private::DumpAddress(), lldb::eFrameCompareEqual, lldb::eFrameCompareOlder, lldb::eFrameCompareSameParent, lldb::eFrameCompareYounger, lldb::eOnlyThisThread, lldb_private::SymbolContext::function, lldb_private::Symbol::GetAddress(), lldb_private::Function::GetAddressRange(), lldb_private::Target::GetArchitecturePlugin(), lldb_private::AddressRange::GetBaseAddress(), lldb_private::Architecture::GetBytesToSkip(), lldb_private::StreamString::GetData(), lldb_private::Address::GetLoadAddress(), lldb_private::GetLog(), lldb_private::Function::GetPrologueByteSize(), lldb_private::Symbol::GetPrologueByteSize(), lldb_private::Thread::GetRegisterContext(), lldb_private::Target::GetSectionLoadList(), lldb_private::Thread::GetStackFrameAtIndex(), lldb_private::ThreadPlan::GetTarget(), lldb_private::ThreadPlan::GetThread(), lldb_private::ThreadPlanStepRange::InRange(), lldb_private::ThreadPlanStepRange::InSymbol(), lldb_private::ThreadPlan::IsPlanComplete(), LLDB_LOGF, lldb_private::ThreadPlanStepRange::m_no_more_plans, lldb_private::ThreadPlanStepRange::m_stack_id, lldb_private::ThreadPlan::m_status, m_step_past_prologue, lldb_private::ThreadPlanStepRange::m_stop_others, m_sub_plan_sp, m_virtual_step, lldb_private::Thread::QueueThreadPlanForRunToAddress(), lldb_private::Thread::QueueThreadPlanForStepThrough(), lldb_private::SectionLoadList::ResolveLoadAddress(), lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint(), lldb_private::ThreadPlan::SetPlanComplete(), lldb_private::Address::Slide(), lldb_private::Step, and lldb_private::SymbolContext::symbol.
|
private |
Definition at line 79 of file ThreadPlanStepInRange.h.
Referenced by FrameMatchesAvoidCriteria(), and SetAvoidRegexp().
|
private |
Definition at line 85 of file ThreadPlanStepInRange.h.
Referenced by DefaultShouldStopHereCallback(), and GetDescription().
|
private |
Definition at line 80 of file ThreadPlanStepInRange.h.
Referenced by ShouldStop().
|
private |
Definition at line 77 of file ThreadPlanStepInRange.h.
Referenced by ShouldStop().
|
private |
Definition at line 83 of file ThreadPlanStepInRange.h.
Referenced by DoPlanExplainsStop(), DoWillResume(), IsVirtualStep(), and ShouldStop().
|
staticprivate |
Definition at line 75 of file ThreadPlanStepInRange.h.
Referenced by GetDefaultFlagsValue(), SetDefaultFlagValue(), and SetFlagsToDefault().