9#ifndef LLDB_TARGET_STOPINFO_H
10#define LLDB_TARGET_STOPINFO_H
20class StopInfo :
public std::enable_shared_from_this<StopInfo> {
75 if (desc_cstr && desc_cstr[0])
88 virtual std::optional<uint32_t>
151 bool silently_continue =
false);
155 const char *description =
nullptr,
156 std::optional<int> code = std::nullopt);
160 const char *description);
virtual std::optional< uint32_t > GetSuggestedStackFrameIndex(bool inlined_stack)
This gives the StopInfo a chance to suggest a stack frame to select.
virtual uint64_t GetStopReasonDataAtIndex(uint32_t idx)
virtual bool IsValidForOperatingSystemThread(Thread &thread)
virtual bool ShouldSelect() const
Returns true if this is a stop reason that should cause a thread to be selected when stopping.
virtual uint32_t GetStopReasonDataCount() const
std::string m_description
friend class ThreadPlanReverseContinue
virtual bool ShouldStopSynchronous(Event *event_ptr)
static lldb::StopInfoSP CreateStopReasonWithPlan(lldb::ThreadPlanSP &plan, lldb::ValueObjectSP return_valobj_sp, lldb::ExpressionVariableSP expression_variable_sp)
uint64_t GetValue() const
bool GetOverrideShouldStop()
static lldb::ExpressionVariableSP GetExpressionVariable(lldb::StopInfoSP &stop_info_sp)
virtual lldb::StopReason GetStopReason() const =0
virtual void PerformAction(Event *event_ptr)
void OverrideShouldNotify(bool override_value)
StructuredData::ObjectSP GetExtendedInfo()
void SetThread(const lldb::ThreadSP &thread_sp)
static lldb::ValueObjectSP GetReturnValueObject(lldb::StopInfoSP &stop_info_sp)
static lldb::StopInfoSP CreateStopReasonToTrace(Thread &thread)
virtual bool WasContinueInterrupted(Thread &thread)
A Continue operation can result in a false stop event before any execution has happened.
const StopInfo & operator=(const StopInfo &)=delete
StopInfo(const StopInfo &)=delete
static lldb::StopInfoSP CreateStopReasonVFork(Thread &thread, lldb::pid_t child_pid, lldb::tid_t child_tid)
static lldb::StopInfoSP CreateStopReasonWithInterrupt(Thread &thread, int signo, const char *description)
virtual ~StopInfo()=default
StructuredData::ObjectSP m_extended_info
static lldb::StopInfoSP CreateStopReasonWithSignal(Thread &thread, int signo, const char *description=nullptr, std::optional< int > code=std::nullopt)
virtual void WillResume(lldb::StateType resume_state)
virtual bool ShouldNotify(Event *event_ptr)
lldb::ThreadSP GetThread() const
static lldb::StopInfoSP CreateStopReasonFork(Thread &thread, lldb::pid_t child_pid, lldb::tid_t child_tid)
static lldb::StopInfoSP CreateStopReasonVForkDone(Thread &thread)
static lldb::StopInfoSP CreateStopReasonWithWatchpointID(Thread &thread, lldb::break_id_t watch_id, bool silently_continue=false)
virtual void SetDescription(const char *desc_cstr)
virtual const char * GetDescription()
static lldb::StopInfoSP CreateStopReasonWithException(Thread &thread, const char *description)
static lldb::StopInfoSP CreateStopReasonWithBreakpointSiteID(Thread &thread, lldb::break_id_t break_id)
static lldb::StopInfoSP CreateStopReasonHistoryBoundary(Thread &thread, const char *description)
static lldb::ValueObjectSP GetCrashingDereference(lldb::StopInfoSP &stop_info_sp, lldb::addr_t *crashing_address=nullptr)
LazyBool m_override_should_notify
static lldb::StopInfoSP CreateStopReasonProcessorTrace(Thread &thread, const char *description)
virtual bool DoShouldNotify(Event *event_ptr)
void OverrideShouldStop(bool override_value)
static lldb::StopInfoSP CreateStopReasonWithBreakpointSiteID(Thread &thread, lldb::break_id_t break_id, bool should_stop)
static lldb::StopInfoSP CreateStopReasonWithExec(Thread &thread)
bool HasTargetRunSinceMe()
StopInfo(Thread &thread, uint64_t value)
lldb::ThreadWP m_thread_wp
LazyBool m_override_should_stop
virtual bool ShouldShow() const
Returns true if this is a stop reason that should be shown to a user when viewing the thread with thi...
bool GetOverriddenShouldStopValue()
virtual bool ShouldStop(Event *event_ptr)
friend class ThreadPlanBase
std::shared_ptr< Object > ObjectSP
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP
std::shared_ptr< lldb_private::Thread > ThreadSP
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::ExpressionVariable > ExpressionVariableSP
StateType
Process and Thread States.
std::shared_ptr< lldb_private::StopInfo > StopInfoSP
StopReason
Thread stop reasons.
@ eStopReasonHistoryBoundary
std::weak_ptr< lldb_private::Thread > ThreadWP