|
LLDB mainline
|
#include <ThreadPlanCallFunction.h>
Public Member Functions | |
| ThreadPlanCallFunction (Thread &thread, const Address &function, const CompilerType &return_type, llvm::ArrayRef< lldb::addr_t > args, const EvaluateExpressionOptions &options) | |
| ThreadPlanCallFunction (Thread &thread, const Address &function, const EvaluateExpressionOptions &options) | |
| ~ThreadPlanCallFunction () override | |
| void | GetDescription (Stream *s, lldb::DescriptionLevel level) override |
| Print a description of this thread to the stream s. | |
| bool | ValidatePlan (Stream *error) override |
| Returns whether this plan could be successfully created. | |
| bool | ShouldStop (Event *event_ptr) override |
| Vote | ShouldReportStop (Event *event_ptr) override |
| bool | StopOthers () override |
| lldb::StateType | GetPlanRunState () override |
| void | DidPush () override |
| bool | WillStop () override |
| bool | MischiefManaged () override |
| lldb::ValueObjectSP | GetReturnValueObject () override |
| lldb::addr_t | GetFunctionStackPointer () |
| void | DidPop () override |
| virtual lldb::StopInfoSP | GetRealStopInfo () |
| lldb::addr_t | GetStopAddress () |
| void | RestoreThreadState () override |
| void | ThreadDestroyed () override |
| void | SetStopOthers (bool new_value) override |
| bool | HitErrorBackstop () const |
| Whether the call completed by throwing an error that reached the language runtime's error backstop. | |
| 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. | |
| bool | TracerExplainsStop () |
| lldb::StateType | RunState () |
| bool | PlanExplainsStop (Event *event_ptr) |
| virtual bool | ShouldAutoContinue (Event *event_ptr) |
| Returns whether this thread plan overrides the ShouldStop of subsequently processed plans. | |
| Vote | ShouldReportRun (Event *event_ptr) |
| virtual bool | SupportsResumeOthers () |
| virtual bool | ShouldRunBeforePublicStop () |
| bool | WillResume (lldb::StateType resume_state, bool current_plan) |
| bool | IsControllingPlan () |
| virtual bool | IsLeafPlan () |
| bool | SetIsControllingPlan (bool value) |
| virtual bool | OkayToDiscard () |
| void | SetOkayToDiscard (bool value) |
| bool | GetPrivate () |
| void | SetPrivate (bool input) |
| 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::ExpressionVariableSP | GetExpressionVariable () |
| virtual bool | IsVirtualStep () |
| bool | SetIterationCount (size_t count) |
| 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 | |
| void | ReportRegisterState (const char *message) |
| bool | DoPlanExplainsStop (Event *event_ptr) override |
| virtual void | SetReturnValue () |
| bool | ConstructorSetup (Thread &thread, ABI *&abi, lldb::addr_t &start_load_addr, lldb::addr_t &function_load_addr) |
| virtual void | DoTakedown (bool success) |
| void | SetBreakpoints () |
| void | ClearBreakpoints () |
| bool | BreakpointsExplainStop () |
| Protected Member Functions inherited from lldb_private::ThreadPlan | |
| 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) |
| void | PushPlan (lldb::ThreadPlanSP &thread_plan_sp) |
| ThreadPlan * | GetPreviousPlan () |
| lldb::StopInfoSP | GetPrivateStopInfo () |
| void | SetStopInfo (lldb::StopInfoSP stop_reason_sp) |
| bool | IsUsuallyUnexplainedStopReason (lldb::StopReason) |
Private Member Functions | |
| ThreadPlanCallFunction (const ThreadPlanCallFunction &)=delete | |
| const ThreadPlanCallFunction & | operator= (const ThreadPlanCallFunction &)=delete |
Private Attributes | |
| CompilerType | m_return_type |
Additional Inherited Members | |
| Public Types inherited from lldb_private::ThreadPlan | |
| enum | ThreadPlanKind { eKindGeneric , eKindNull , eKindBase , eKindCallFunction , eKindPython , eKindStepInstruction , eKindStepOut , eKindStepOverBreakpoint , eKindStepOverRange , eKindStepInRange , eKindRunToAddress , eKindStepThrough , eKindStepUntil , eKindSingleThreadTimeout , eKindRunToBreakpoint } |
Definition at line 20 of file ThreadPlanCallFunction.h.
| lldb_private::ThreadPlanCallFunction::ThreadPlanCallFunction | ( | Thread & | thread, |
| const Address & | function, | ||
| const CompilerType & | return_type, | ||
| llvm::ArrayRef< lldb::addr_t > | args, | ||
| const EvaluateExpressionOptions & | options ) |
| ThreadPlanCallFunction::ThreadPlanCallFunction | ( | Thread & | thread, |
| const Address & | function, | ||
| const EvaluateExpressionOptions & | options ) |
Definition at line 135 of file ThreadPlanCallFunction.cpp.
References lldb_private::ThreadPlan::eKindCallFunction, lldb_private::eVoteNoOpinion, LLDB_INVALID_ADDRESS, m_constructor_errors, m_cxx_language_runtime, m_debug_execution, m_function_addr, m_function_sp, m_ignore_breakpoints, m_objc_language_runtime, m_real_stop_info_sp, m_return_type, m_return_valobj_sp, m_should_clear_cxx_exception_bp, m_should_clear_objc_exception_bp, m_start_addr, m_stop_address, m_stop_other_threads, m_stored_thread_state, m_subplan_sp, m_takedown_done, m_trap_exceptions, m_unwind_on_error, m_valid, and lldb_private::ThreadPlan::ThreadPlan().
|
override |
Definition at line 153 of file ThreadPlanCallFunction.cpp.
References DoTakedown(), and lldb_private::ThreadPlan::PlanSucceeded().
|
privatedelete |
References ThreadPlanCallFunction().
|
protected |
Definition at line 463 of file ThreadPlanCallFunction.cpp.
References lldb::eStopReasonBreakpoint, lldb_private::GetLog(), lldb_private::ThreadPlan::GetPrivateStopInfo(), lldb_private::ThreadPlan::GetThread(), LLDB_LOGF, m_cxx_language_runtime, m_error_backstop_bp_sp, m_error_backstop_runtime, m_hit_error_backstop, m_objc_language_runtime, lldb_private::ThreadPlan::m_process, m_return_valobj_sp, m_trap_exceptions, lldb_private::ThreadPlan::SetPlanComplete(), and lldb_private::Step.
Referenced by DoPlanExplainsStop().
|
protected |
Definition at line 452 of file ThreadPlanCallFunction.cpp.
References lldb_private::ThreadPlan::GetTarget(), m_cxx_language_runtime, m_error_backstop_bp_sp, m_objc_language_runtime, m_should_clear_cxx_exception_bp, m_should_clear_objc_exception_bp, m_trap_exceptions, and lldb_private::Target::RemoveBreakpointByID().
Referenced by DoTakedown().
|
protected |
Definition at line 34 of file ThreadPlanCallFunction.cpp.
References error(), lldb_private::Target::GetEntryPointAddress(), lldb_private::GetLog(), lldb_private::ABI::GetRedZoneSize(), lldb_private::ThreadPlan::GetTarget(), lldb_private::Log::GetVerbose(), LLDB_LOGF, m_constructor_errors, m_function_addr, m_function_sp, m_start_addr, m_stored_thread_state, ReportRegisterState(), SetBreakpoints(), lldb_private::ThreadPlan::SetIsControllingPlan(), lldb_private::ThreadPlan::SetOkayToDiscard(), lldb_private::ThreadPlan::SetPrivate(), and lldb_private::Step.
Referenced by lldb_private::ThreadPlanCallFunctionUsingABI::ThreadPlanCallFunctionUsingABI().
|
overridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Reimplemented in lldb_private::ThreadPlanCallUserExpression.
Definition at line 235 of file ThreadPlanCallFunction.cpp.
References DoTakedown(), and lldb_private::ThreadPlan::PlanSucceeded().
Referenced by lldb_private::ThreadPlanCallUserExpression::DidPop().
|
overridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Reimplemented in lldb_private::ThreadPlanCallUserExpression.
Definition at line 395 of file ThreadPlanCallFunction.cpp.
References lldb_private::ThreadPlan::GetThread(), m_start_addr, m_stop_other_threads, m_subplan_sp, and lldb_private::Thread::SetStopInfoToNothing().
Referenced by lldb_private::ThreadPlanCallUserExpression::DidPush().
Implements lldb_private::ThreadPlan.
Definition at line 267 of file ThreadPlanCallFunction.cpp.
References BreakpointsExplainStop(), lldb::eStopReasonBreakpoint, lldb::eStopReasonFork, lldb::eStopReasonNone, lldb::eStopReasonVFork, lldb::eStopReasonVForkDone, lldb_private::Stoppoint::GetID(), lldb_private::Process::ProcessEventData::GetInterruptedFromEvent(), lldb_private::GetLog(), lldb_private::ThreadPlan::GetPrivateStopInfo(), lldb_private::Breakpoint::IsInternal(), LLDB_LOG, LLDB_LOGF, m_ignore_breakpoints, lldb_private::ThreadPlan::m_process, m_real_stop_info_sp, m_subplan_sp, m_unwind_on_error, lldb_private::Process, lldb_private::ThreadPlan::SetPlanComplete(), lldb_private::Step, and lldb_private::Thread::StopReasonAsString().
Referenced by ShouldStop().
|
protectedvirtual |
Reimplemented in lldb_private::ThreadPlanCallUserExpression.
Definition at line 180 of file ThreadPlanCallFunction.cpp.
References ClearBreakpoints(), lldb_private::GetLog(), lldb_private::ThreadPlan::GetPrivateStopInfo(), lldb_private::ThreadPlan::GetThread(), lldb_private::Log::GetVerbose(), lldb_private::ThreadPlan::IsPlanComplete(), LLDB_LOGF, m_real_stop_info_sp, m_stop_address, m_stored_thread_state, m_takedown_done, lldb_private::ThreadPlan::m_tid, m_valid, ReportRegisterState(), lldb_private::ThreadPlan::SetPlanComplete(), SetReturnValue(), and lldb_private::Step.
Referenced by DidPop(), lldb_private::ThreadPlanCallUserExpression::DoTakedown(), and ~ThreadPlanCallFunction().
|
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::ThreadPlan.
Reimplemented in lldb_private::ThreadPlanCallFunctionUsingABI, and lldb_private::ThreadPlanCallUserExpression.
Definition at line 237 of file ThreadPlanCallFunction.cpp.
References lldb::eDescriptionLevelBrief, lldb_private::ThreadPlan::GetTarget(), m_function_addr, lldb_private::Stream::Printf(), and lldb_private::Stream::PutCString().
Referenced by lldb_private::ThreadPlanCallUserExpression::GetDescription().
|
inline |
Definition at line 69 of file ThreadPlanCallFunction.h.
References m_function_sp.
Referenced by lldb_private::LLVMUserExpression::DoExecute(), and lldb_private::ThreadPlanCallUserExpression::MischiefManaged().
|
overridevirtual |
Implements lldb_private::ThreadPlan.
Definition at line 393 of file ThreadPlanCallFunction.cpp.
References lldb::eStateRunning.
|
inlinevirtual |
Reimplemented in lldb_private::ThreadPlanCallUserExpression.
Definition at line 84 of file ThreadPlanCallFunction.h.
References lldb_private::ThreadPlan::GetPrivateStopInfo(), and m_real_stop_info_sp.
Referenced by lldb_private::ThreadPlanCallUserExpression::GetRealStopInfo().
|
inlineoverridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Definition at line 62 of file ThreadPlanCallFunction.h.
References m_return_valobj_sp.
Referenced by lldb_private::LLVMUserExpression::DoExecute().
|
inline |
Definition at line 91 of file ThreadPlanCallFunction.h.
References m_stop_address.
Referenced by lldb_private::ThreadPlanCallUserExpression::GetRealStopInfo().
|
inline |
Whether the call completed by throwing an error that reached the language runtime's error backstop.
Definition at line 101 of file ThreadPlanCallFunction.h.
References m_hit_error_backstop.
Referenced by lldb_private::LLVMUserExpression::DoExecute().
|
overridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Reimplemented in lldb_private::ThreadPlanCallUserExpression.
Definition at line 416 of file ThreadPlanCallFunction.cpp.
References lldb_private::GetLog(), lldb_private::ThreadPlan::IsPlanComplete(), LLDB_LOGF, lldb_private::ThreadPlan::MischiefManaged(), and lldb_private::Step.
|
privatedelete |
References ThreadPlanCallFunction().
|
protected |
Definition at line 157 of file ThreadPlanCallFunction.cpp.
References lldb_private::DumpRegisterValue(), lldb::eFormatDefault, lldb_private::Stream::EOL(), lldb_private::GetLog(), lldb_private::Thread::GetRegisterContext(), lldb_private::RegisterContext::GetRegisterCount(), lldb_private::RegisterContext::GetRegisterInfoAtIndex(), lldb_private::StreamString::GetString(), lldb_private::ThreadPlan::GetThread(), lldb_private::Log::GetVerbose(), lldb_private::Log::PutCString(), lldb_private::Log::PutString(), lldb_private::RegisterContext::ReadRegister(), and lldb_private::Step.
Referenced by ConstructorSetup(), DoTakedown(), ShouldStop(), and lldb_private::ThreadPlanCallFunctionUsingABI::ThreadPlanCallFunctionUsingABI().
|
overridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Definition at line 509 of file ThreadPlanCallFunction.cpp.
References lldb_private::ThreadPlan::GetThread(), m_stored_thread_state, and lldb_private::Thread::RestoreThreadStateFromCheckpoint().
|
protected |
Definition at line 430 of file ThreadPlanCallFunction.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeObjC, m_cxx_language_runtime, m_error_backstop_bp_sp, m_error_backstop_runtime, m_objc_language_runtime, lldb_private::ThreadPlan::m_process, m_should_clear_cxx_exception_bp, m_should_clear_objc_exception_bp, and m_trap_exceptions.
Referenced by ConstructorSetup().
|
protectedvirtual |
Reimplemented in lldb_private::ThreadPlanCallFunctionUsingABI.
Definition at line 513 of file ThreadPlanCallFunction.cpp.
References lldb_private::ABI::GetReturnValueObject(), lldb_private::ThreadPlan::GetThread(), lldb_private::ThreadPlan::m_process, m_return_type, and m_return_valobj_sp.
Referenced by DoTakedown().
|
overridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Definition at line 505 of file ThreadPlanCallFunction.cpp.
References m_subplan_sp.
Reimplemented from lldb_private::ThreadPlan.
Definition at line 260 of file ThreadPlanCallFunction.cpp.
References lldb_private::eVoteYes, lldb_private::ThreadPlan::IsPlanComplete(), m_takedown_done, and lldb_private::ThreadPlan::ShouldReportStop().
Implements lldb_private::ThreadPlan.
Definition at line 377 of file ThreadPlanCallFunction.cpp.
References DoPlanExplainsStop(), lldb_private::ThreadPlan::IsPlanComplete(), and ReportRegisterState().
|
overridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Definition at line 391 of file ThreadPlanCallFunction.cpp.
References m_stop_other_threads.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ThreadPlan.
Definition at line 95 of file ThreadPlanCallFunction.h.
References m_takedown_done.
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. |
Implements lldb_private::ThreadPlan.
Definition at line 246 of file ThreadPlanCallFunction.cpp.
References error(), m_constructor_errors, and m_valid.
|
overridevirtual |
Implements lldb_private::ThreadPlan.
Definition at line 414 of file ThreadPlanCallFunction.cpp.
|
protected |
Definition at line 140 of file ThreadPlanCallFunction.h.
Referenced by ConstructorSetup(), ThreadPlanCallFunction(), and ValidatePlan().
|
protected |
Definition at line 132 of file ThreadPlanCallFunction.h.
Referenced by BreakpointsExplainStop(), ClearBreakpoints(), SetBreakpoints(), and ThreadPlanCallFunction().
|
protected |
Definition at line 126 of file ThreadPlanCallFunction.h.
Referenced by ThreadPlanCallFunction().
|
protected |
Definition at line 153 of file ThreadPlanCallFunction.h.
Referenced by BreakpointsExplainStop(), ClearBreakpoints(), and SetBreakpoints().
|
protected |
The runtime that catches errors the expression doesn't handle, if it runs as top-level code.
Definition at line 152 of file ThreadPlanCallFunction.h.
Referenced by BreakpointsExplainStop(), and SetBreakpoints().
|
protected |
Definition at line 128 of file ThreadPlanCallFunction.h.
Referenced by ConstructorSetup(), GetDescription(), lldb_private::ThreadPlanCallFunctionUsingABI::GetDescription(), and ThreadPlanCallFunction().
|
protected |
Definition at line 130 of file ThreadPlanCallFunction.h.
Referenced by ConstructorSetup(), GetFunctionStackPointer(), ThreadPlanCallFunction(), and lldb_private::ThreadPlanCallFunctionUsingABI::ThreadPlanCallFunctionUsingABI().
|
protected |
Definition at line 154 of file ThreadPlanCallFunction.h.
Referenced by BreakpointsExplainStop(), and HitErrorBackstop().
|
protected |
Definition at line 125 of file ThreadPlanCallFunction.h.
Referenced by DoPlanExplainsStop(), and ThreadPlanCallFunction().
|
protected |
Definition at line 133 of file ThreadPlanCallFunction.h.
Referenced by BreakpointsExplainStop(), ClearBreakpoints(), SetBreakpoints(), and ThreadPlanCallFunction().
|
protected |
Definition at line 136 of file ThreadPlanCallFunction.h.
Referenced by DoPlanExplainsStop(), DoTakedown(), GetRealStopInfo(), and ThreadPlanCallFunction().
|
private |
Definition at line 157 of file ThreadPlanCallFunction.h.
Referenced by SetReturnValue(), and ThreadPlanCallFunction().
|
protected |
Definition at line 141 of file ThreadPlanCallFunction.h.
Referenced by BreakpointsExplainStop(), GetReturnValueObject(), SetReturnValue(), lldb_private::ThreadPlanCallFunctionUsingABI::SetReturnValue(), and ThreadPlanCallFunction().
|
protected |
Definition at line 147 of file ThreadPlanCallFunction.h.
Referenced by ClearBreakpoints(), SetBreakpoints(), and ThreadPlanCallFunction().
|
protected |
Definition at line 146 of file ThreadPlanCallFunction.h.
Referenced by ClearBreakpoints(), SetBreakpoints(), and ThreadPlanCallFunction().
|
protected |
Definition at line 129 of file ThreadPlanCallFunction.h.
Referenced by ConstructorSetup(), DidPush(), and ThreadPlanCallFunction().
|
protected |
Definition at line 148 of file ThreadPlanCallFunction.h.
Referenced by DoTakedown(), GetStopAddress(), and ThreadPlanCallFunction().
|
protected |
Definition at line 123 of file ThreadPlanCallFunction.h.
Referenced by DidPush(), StopOthers(), and ThreadPlanCallFunction().
|
protected |
Definition at line 134 of file ThreadPlanCallFunction.h.
Referenced by ConstructorSetup(), DoTakedown(), RestoreThreadState(), and ThreadPlanCallFunction().
|
protected |
Definition at line 131 of file ThreadPlanCallFunction.h.
Referenced by DidPush(), DoPlanExplainsStop(), SetStopOthers(), and ThreadPlanCallFunction().
|
protected |
Definition at line 144 of file ThreadPlanCallFunction.h.
Referenced by DoTakedown(), ShouldReportStop(), ThreadDestroyed(), and ThreadPlanCallFunction().
|
protected |
Definition at line 127 of file ThreadPlanCallFunction.h.
Referenced by BreakpointsExplainStop(), ClearBreakpoints(), SetBreakpoints(), and ThreadPlanCallFunction().
|
protected |
Definition at line 124 of file ThreadPlanCallFunction.h.
Referenced by DoPlanExplainsStop(), and ThreadPlanCallFunction().
|
protected |
Definition at line 122 of file ThreadPlanCallFunction.h.
Referenced by DoTakedown(), ThreadPlanCallFunction(), lldb_private::ThreadPlanCallFunctionUsingABI::ThreadPlanCallFunctionUsingABI(), and ValidatePlan().