21 : m_callbacks(), m_baton(nullptr), m_owner(owner),
32 : m_callbacks(), m_baton(), m_owner(owner),
41 bool should_stop_here =
true;
50 LLDB_LOGF(log,
"ShouldStopHere callback returned %u from 0x%" PRIx64
".",
51 should_stop_here, current_addr);
55 return should_stop_here;
60 Status &status,
void *baton) {
61 bool should_stop_here =
true;
73 LLDB_LOGF(log,
"Stepping out of frame with no debug info");
75 should_stop_here =
false;
88 should_stop_here =
false;
91 return should_stop_here;
96 Status &status,
void *baton) {
97 const bool stop_others =
false;
98 const size_t frame_index = 0;
106 return return_plan_sp;
108 sc = frame->
GetSymbolContext(eSymbolContextLineEntry | eSymbolContextSymbol);
115 bool just_step_out =
false;
121 LLDB_LOGF(log,
"Stopped in a function with only line 0 lines, just "
123 just_step_out =
true;
126 if (!just_step_out) {
127 LLDB_LOGF(log,
"ThreadPlanShouldStopHere::DefaultStepFromHereCallback "
128 "Queueing StepInRange plan to step through line 0 code.");
140 frame_index, status,
true);
141 return return_plan_sp;
152 return return_plan_sp;
#define LLDB_LOGF(log,...)
A section + offset based address range class.
bool ContainsFileAddress(const Address &so_addr) const
Check if a section offset address is contained in this range.
A section + offset based address class.
bool Slide(int64_t offset)
bool Test(ValueType bit) const
Test a single flag bit.
This base class provides an interface to stack frames.
const SymbolContext & GetSymbolContext(lldb::SymbolContextItem resolve_scope)
Provide a SymbolContext for this StackFrame's current pc value.
bool HasDebugInformation()
Determine whether this StackFrame has debug information available or not.
Defines a symbol context baton that can be handed other debug core functions.
Symbol * symbol
The Symbol for a given query.
LineEntry line_entry
The LineEntry for a given query.
bool ValueIsAddress() const
lldb::addr_t GetByteSize() const
Address GetAddress() const
lldb_private::Flags m_flags
virtual lldb::ThreadPlanSP QueueStepOutFromHerePlan(Flags &flags, lldb::FrameComparison operation, Status &status)
virtual ~ThreadPlanShouldStopHere()
ThreadPlanShouldStopHereCallbacks m_callbacks
ThreadPlanShouldStopHere(ThreadPlan *owner)
void SetShouldStopHereCallbacks(const ThreadPlanShouldStopHereCallbacks *callbacks, void *baton)
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)
bool InvokeShouldStopHereCallback(lldb::FrameComparison operation, Status &status)
lldb::ThreadPlanSP CheckShouldStopHereAndQueueStepOut(lldb::FrameComparison operation, Status &status)
Thread & GetThread()
Returns the Thread that is using this thread plan.
virtual lldb::StackFrameSP GetStackFrameAtIndex(uint32_t idx)
virtual lldb::RegisterContextSP GetRegisterContext()=0
virtual lldb::ThreadPlanSP QueueThreadPlanForStepInRange(bool abort_other_plans, const AddressRange &range, const SymbolContext &addr_context, const char *step_in_target, lldb::RunMode stop_other_threads, Status &status, LazyBool step_in_avoids_code_without_debug_info=eLazyBoolCalculate, LazyBool step_out_avoids_code_without_debug_info=eLazyBoolCalculate)
Queues the plan used to step through an address range, stepping into functions.
virtual lldb::ThreadPlanSP QueueThreadPlanForStepOutNoShouldStop(bool abort_other_plans, SymbolContext *addr_context, bool first_insn, bool stop_other_threads, Vote report_stop_vote, Vote report_run_vote, uint32_t frame_idx, Status &status, bool continue_to_next_branch=false)
Queue the plan used to step out of the function at the current PC of a thread.
A class that represents a running process on the host machine.
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP
FrameComparison
This is the return value for frame comparisons.
@ eFrameCompareSameParent
AddressRange range
The section offset address range for this line entry.
uint32_t line
The source line number, or LLDB_INVALID_LINE_NUMBER if there is no line number information.
ThreadPlanStepFromHereCallback step_from_here_callback
ThreadPlanShouldStopHereCallback should_stop_here_callback