9#ifndef LLDB_TARGET_STOPINFO_H
10#define LLDB_TARGET_STOPINFO_H
20class StopInfo :
public std::enable_shared_from_this<StopInfo> {
74 if (desc_cstr && desc_cstr[0])
119 bool silently_continue =
false);
123 const char *description =
nullptr,
124 std::optional<int> code = std::nullopt);
128 const char *description);
virtual bool IsValidForOperatingSystemThread(Thread &thread)
std::string m_description
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::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()
lldb::ThreadWP m_thread_wp
LazyBool m_override_should_stop
bool GetOverriddenShouldStopValue()
virtual bool ShouldStop(Event *event_ptr)
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.
std::weak_ptr< lldb_private::Thread > ThreadWP