LLDB mainline
lldb_private::StopInfo Class Referenceabstract

#include <StopInfo.h>

Inheritance diagram for lldb_private::StopInfo:
[legend]

Public Member Functions

 StopInfo (Thread &thread, uint64_t value)
virtual ~StopInfo ()=default
bool IsValid () const
void SetThread (const lldb::ThreadSP &thread_sp)
lldb::ThreadSP GetThread () const
uint64_t GetValue () const
virtual lldb::StopReason GetStopReason () const =0
virtual bool ShouldStopSynchronous (Event *event_ptr)
void OverrideShouldNotify (bool override_value)
virtual bool ShouldNotify (Event *event_ptr)
virtual void WillResume (lldb::StateType resume_state)
virtual const char * GetDescription ()
virtual void SetDescription (const char *desc_cstr)
virtual std::optional< uint32_t > GetSuggestedStackFrameIndex (bool inlined_stack)
 This gives the StopInfo a chance to suggest a stack frame to select.
virtual bool IsValidForOperatingSystemThread (Thread &thread)
virtual bool WasContinueInterrupted (Thread &thread)
 A Continue operation can result in a false stop event before any execution has happened.
virtual uint32_t GetStopReasonDataCount () const
virtual uint64_t GetStopReasonDataAtIndex (uint32_t idx)
void OverrideShouldStop (bool override_value)
bool GetOverrideShouldStop ()
bool GetOverriddenShouldStopValue ()
StructuredData::ObjectSP GetExtendedInfo ()
virtual bool ShouldShow () const
 Returns true if this is a stop reason that should be shown to a user when viewing the thread with this stop info.
virtual bool ShouldSelect () const
 Returns true if this is a stop reason that should cause a thread to be selected when stopping.

Static Public Member Functions

static lldb::StopInfoSP CreateStopReasonWithBreakpointSiteID (Thread &thread, lldb::break_id_t break_id)
static lldb::StopInfoSP CreateStopReasonWithBreakpointSiteID (Thread &thread, lldb::break_id_t break_id, bool should_stop)
static lldb::StopInfoSP CreateStopReasonWithWatchpointID (Thread &thread, lldb::break_id_t watch_id, bool silently_continue=false)
static lldb::StopInfoSP CreateStopReasonWithSignal (Thread &thread, int signo, const char *description=nullptr, std::optional< int > code=std::nullopt)
static lldb::StopInfoSP CreateStopReasonWithInterrupt (Thread &thread, int signo, const char *description)
static lldb::StopInfoSP CreateStopReasonToTrace (Thread &thread)
static lldb::StopInfoSP CreateStopReasonWithPlan (lldb::ThreadPlanSP &plan, lldb::ValueObjectSP return_valobj_sp, lldb::ExpressionVariableSP expression_variable_sp)
static lldb::StopInfoSP CreateStopReasonWithException (Thread &thread, const char *description)
static lldb::StopInfoSP CreateStopReasonWithExec (Thread &thread)
static lldb::StopInfoSP CreateStopReasonProcessorTrace (Thread &thread, const char *description)
static lldb::StopInfoSP CreateStopReasonHistoryBoundary (Thread &thread, const char *description)
static lldb::StopInfoSP CreateStopReasonFork (Thread &thread, lldb::pid_t child_pid, lldb::tid_t child_tid)
static lldb::StopInfoSP CreateStopReasonVFork (Thread &thread, lldb::pid_t child_pid, lldb::tid_t child_tid)
static lldb::StopInfoSP CreateStopReasonVForkDone (Thread &thread)
static lldb::ValueObjectSP GetReturnValueObject (lldb::StopInfoSP &stop_info_sp)
static lldb::ExpressionVariableSP GetExpressionVariable (lldb::StopInfoSP &stop_info_sp)
static lldb::ValueObjectSP GetCrashingDereference (lldb::StopInfoSP &stop_info_sp, lldb::addr_t *crashing_address=nullptr)

Protected Member Functions

virtual void PerformAction (Event *event_ptr)
virtual bool DoShouldNotify (Event *event_ptr)
virtual bool ShouldStop (Event *event_ptr)
bool HasTargetRunSinceMe ()
void MakeStopInfoValid ()

Protected Attributes

lldb::ThreadWP m_thread_wp
uint32_t m_stop_id
uint32_t m_resume_id
uint64_t m_value
std::string m_description
LazyBool m_override_should_notify
LazyBool m_override_should_stop
StructuredData::ObjectSP m_extended_info

Private Member Functions

 StopInfo (const StopInfo &)=delete
const StopInfooperator= (const StopInfo &)=delete

Friends

class Process::ProcessEventData
class ThreadPlanBase
class ThreadPlanReverseContinue
class Thread

Detailed Description

Definition at line 20 of file StopInfo.h.

Constructor & Destructor Documentation

◆ StopInfo() [1/2]

◆ ~StopInfo()

virtual lldb_private::StopInfo::~StopInfo ( )
virtualdefault

◆ StopInfo() [2/2]

lldb_private::StopInfo::StopInfo ( const StopInfo & )
privatedelete

References StopInfo().

Member Function Documentation

◆ CreateStopReasonFork()

StopInfoSP StopInfo::CreateStopReasonFork ( Thread & thread,
lldb::pid_t child_pid,
lldb::tid_t child_tid )
static

◆ CreateStopReasonHistoryBoundary()

StopInfoSP StopInfo::CreateStopReasonHistoryBoundary ( Thread & thread,
const char * description )
static

◆ CreateStopReasonProcessorTrace()

StopInfoSP StopInfo::CreateStopReasonProcessorTrace ( Thread & thread,
const char * description )
static

◆ CreateStopReasonToTrace()

◆ CreateStopReasonVFork()

StopInfoSP StopInfo::CreateStopReasonVFork ( Thread & thread,
lldb::pid_t child_pid,
lldb::tid_t child_tid )
static

◆ CreateStopReasonVForkDone()

StopInfoSP StopInfo::CreateStopReasonVForkDone ( Thread & thread)
static

◆ CreateStopReasonWithBreakpointSiteID() [1/2]

◆ CreateStopReasonWithBreakpointSiteID() [2/2]

lldb::StopInfoSP lldb_private::StopInfo::CreateStopReasonWithBreakpointSiteID ( Thread & thread,
lldb::break_id_t break_id,
bool should_stop )
static

References Thread.

◆ CreateStopReasonWithException()

◆ CreateStopReasonWithExec()

StopInfoSP StopInfo::CreateStopReasonWithExec ( Thread & thread)
static

◆ CreateStopReasonWithInterrupt()

StopInfoSP StopInfo::CreateStopReasonWithInterrupt ( Thread & thread,
int signo,
const char * description )
static

◆ CreateStopReasonWithPlan()

StopInfoSP StopInfo::CreateStopReasonWithPlan ( lldb::ThreadPlanSP & plan,
lldb::ValueObjectSP return_valobj_sp,
lldb::ExpressionVariableSP expression_variable_sp )
static

Definition at line 1594 of file StopInfo.cpp.

Referenced by lldb_private::Thread::GetStopInfo().

◆ CreateStopReasonWithSignal()

◆ CreateStopReasonWithWatchpointID()

StopInfoSP StopInfo::CreateStopReasonWithWatchpointID ( Thread & thread,
lldb::break_id_t watch_id,
bool silently_continue = false )
static

◆ DoShouldNotify()

virtual bool lldb_private::StopInfo::DoShouldNotify ( Event * event_ptr)
inlineprotectedvirtual

◆ GetCrashingDereference()

lldb::ValueObjectSP StopInfo::GetCrashingDereference ( lldb::StopInfoSP & stop_info_sp,
lldb::addr_t * crashing_address = nullptr )
static

◆ GetDescription()

◆ GetExpressionVariable()

ExpressionVariableSP StopInfo::GetExpressionVariable ( lldb::StopInfoSP & stop_info_sp)
static

◆ GetExtendedInfo()

StructuredData::ObjectSP lldb_private::StopInfo::GetExtendedInfo ( )
inline

Definition at line 125 of file StopInfo.h.

References m_extended_info.

◆ GetOverriddenShouldStopValue()

bool lldb_private::StopInfo::GetOverriddenShouldStopValue ( )
inline

Definition at line 121 of file StopInfo.h.

References lldb_private::eLazyBoolYes, and m_override_should_stop.

◆ GetOverrideShouldStop()

bool lldb_private::StopInfo::GetOverrideShouldStop ( )
inline

Definition at line 117 of file StopInfo.h.

References lldb_private::eLazyBoolCalculate, and m_override_should_stop.

◆ GetReturnValueObject()

◆ GetStopReason()

◆ GetStopReasonDataAtIndex()

virtual uint64_t lldb_private::StopInfo::GetStopReasonDataAtIndex ( uint32_t idx)
inlinevirtual

◆ GetStopReasonDataCount()

virtual uint32_t lldb_private::StopInfo::GetStopReasonDataCount ( ) const
inlinevirtual

◆ GetSuggestedStackFrameIndex()

virtual std::optional< uint32_t > lldb_private::StopInfo::GetSuggestedStackFrameIndex ( bool inlined_stack)
inlinevirtual

This gives the StopInfo a chance to suggest a stack frame to select.

Passing true for inlined_stack will request changes to the inlined call stack. Passing false will request changes to the real stack frame. The inlined stack gets adjusted before we call into the thread plans so they can reason based on the correct values. The real stack adjustment is handled after the frame recognizers get a chance to adjust the frame.

Reimplemented in lldb_private::InstrumentationRuntimeStopInfo, lldb_private::StopInfoBreakpoint, and lldb_private::StopInfoTrace.

Definition at line 89 of file StopInfo.h.

◆ GetThread()

◆ GetValue()

◆ HasTargetRunSinceMe()

bool StopInfo::HasTargetRunSinceMe ( )
protected

◆ IsValid()

bool StopInfo::IsValid ( ) const

Definition at line 41 of file StopInfo.cpp.

References m_stop_id, and m_thread_wp.

Referenced by ShouldShow().

◆ IsValidForOperatingSystemThread()

virtual bool lldb_private::StopInfo::IsValidForOperatingSystemThread ( Thread & thread)
inlinevirtual

Reimplemented in lldb_private::StopInfoBreakpoint.

Definition at line 93 of file StopInfo.h.

References Thread.

◆ MakeStopInfoValid()

void StopInfo::MakeStopInfoValid ( )
protected

Definition at line 48 of file StopInfo.cpp.

References m_resume_id, m_stop_id, and m_thread_wp.

◆ operator=()

const StopInfo & lldb_private::StopInfo::operator= ( const StopInfo & )
privatedelete

References StopInfo().

◆ OverrideShouldNotify()

void lldb_private::StopInfo::OverrideShouldNotify ( bool override_value)
inline

◆ OverrideShouldStop()

void lldb_private::StopInfo::OverrideShouldStop ( bool override_value)
inline

◆ PerformAction()

virtual void lldb_private::StopInfo::PerformAction ( Event * event_ptr)
inlineprotectedvirtual

◆ SetDescription()

◆ SetThread()

void lldb_private::StopInfo::SetThread ( const lldb::ThreadSP & thread_sp)
inline

Definition at line 33 of file StopInfo.h.

References m_thread_wp.

◆ ShouldNotify()

virtual bool lldb_private::StopInfo::ShouldNotify ( Event * event_ptr)
inlinevirtual

◆ ShouldSelect()

virtual bool lldb_private::StopInfo::ShouldSelect ( ) const
inlinevirtual

Returns true if this is a stop reason that should cause a thread to be selected when stopping.

Reimplemented in lldb_private::StopInfoBreakpoint, and lldb_private::StopInfoUnixSignal.

Definition at line 133 of file StopInfo.h.

References lldb::eStopReasonHistoryBoundary, lldb::eStopReasonInvalid, lldb::eStopReasonNone, and GetStopReason().

◆ ShouldShow()

virtual bool lldb_private::StopInfo::ShouldShow ( ) const
inlinevirtual

Returns true if this is a stop reason that should be shown to a user when viewing the thread with this stop info.

Reimplemented in lldb_private::StopInfoBreakpoint.

Definition at line 129 of file StopInfo.h.

References IsValid().

◆ ShouldStop()

◆ ShouldStopSynchronous()

virtual bool lldb_private::StopInfo::ShouldStopSynchronous ( Event * event_ptr)
inlinevirtual

◆ WasContinueInterrupted()

virtual bool lldb_private::StopInfo::WasContinueInterrupted ( Thread & thread)
inlinevirtual

A Continue operation can result in a false stop event before any execution has happened.

We need to detect this and silently continue again one more time.

Reimplemented in lldb_private::StopInfoMachException.

Definition at line 98 of file StopInfo.h.

References Thread.

◆ WillResume()

virtual void lldb_private::StopInfo::WillResume ( lldb::StateType resume_state)
inlinevirtual

Reimplemented in lldb_private::StopInfoUnixSignal.

Definition at line 68 of file StopInfo.h.

◆ Process::ProcessEventData

friend class Process::ProcessEventData
friend

Definition at line 21 of file StopInfo.h.

◆ Thread

friend class Thread
friend

Definition at line 245 of file StopInfo.h.

References Thread.

Referenced by CreateStopReasonFork(), CreateStopReasonHistoryBoundary(), CreateStopReasonProcessorTrace(), CreateStopReasonToTrace(), CreateStopReasonVFork(), CreateStopReasonVForkDone(), CreateStopReasonWithBreakpointSiteID(), CreateStopReasonWithBreakpointSiteID(), CreateStopReasonWithException(), CreateStopReasonWithExec(), lldb_private::InstrumentationRuntimeStopInfo::CreateStopReasonWithInstrumentationData(), CreateStopReasonWithInterrupt(), lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), CreateStopReasonWithSignal(), CreateStopReasonWithWatchpointID(), lldb_private::StopInfoMachException::DeterminePtrauthFailure(), lldb_private::InstrumentationRuntimeStopInfo::InstrumentationRuntimeStopInfo(), IsValidForOperatingSystemThread(), lldb_private::StopInfoBreakpoint::IsValidForOperatingSystemThread(), StopInfo(), lldb_private::StopInfoBreakpoint::StopInfoBreakpoint(), lldb_private::StopInfoBreakpoint::StopInfoBreakpoint(), lldb_private::StopInfoException::StopInfoException(), lldb_private::StopInfoExec::StopInfoExec(), lldb_private::StopInfoFork::StopInfoFork(), lldb_private::StopInfoHistoryBoundary::StopInfoHistoryBoundary(), lldb_private::StopInfoInterrupt::StopInfoInterrupt(), lldb_private::StopInfoMachException::StopInfoMachException(), lldb_private::StopInfoProcessorTrace::StopInfoProcessorTrace(), lldb_private::StopInfoTrace::StopInfoTrace(), lldb_private::StopInfoUnixSignal::StopInfoUnixSignal(), lldb_private::StopInfoVFork::StopInfoVFork(), lldb_private::StopInfoVForkDone::StopInfoVForkDone(), lldb_private::StopInfoWatchpoint::StopInfoWatchpoint(), Thread, ThreadPlanReverseContinue, lldb_private::StopInfoWatchpoint::ThreadPlanStepOverWatchpoint::ThreadPlanStepOverWatchpoint(), WasContinueInterrupted(), and lldb_private::StopInfoMachException::WasContinueInterrupted().

◆ ThreadPlanBase

friend class ThreadPlanBase
friend

Definition at line 22 of file StopInfo.h.

References ThreadPlanBase.

Referenced by ThreadPlanBase.

◆ ThreadPlanReverseContinue

friend class ThreadPlanReverseContinue
friend

Definition at line 23 of file StopInfo.h.

References Thread, and ThreadPlanReverseContinue.

Referenced by ThreadPlanReverseContinue.

Member Data Documentation

◆ m_description

◆ m_extended_info

StructuredData::ObjectSP lldb_private::StopInfo::m_extended_info
protected

◆ m_override_should_notify

LazyBool lldb_private::StopInfo::m_override_should_notify
protected

Definition at line 228 of file StopInfo.h.

Referenced by OverrideShouldNotify(), ShouldNotify(), and StopInfo().

◆ m_override_should_stop

LazyBool lldb_private::StopInfo::m_override_should_stop
protected

◆ m_resume_id

uint32_t lldb_private::StopInfo::m_resume_id
protected

Definition at line 224 of file StopInfo.h.

Referenced by HasTargetRunSinceMe(), MakeStopInfoValid(), and StopInfo().

◆ m_stop_id

uint32_t lldb_private::StopInfo::m_stop_id
protected

Definition at line 223 of file StopInfo.h.

Referenced by IsValid(), MakeStopInfoValid(), and StopInfo().

◆ m_thread_wp

◆ m_value


The documentation for this class was generated from the following files: