LLDB mainline
lldb_private::StopInfoMachException Class Reference

#include <StopInfoMachException.h>

Inheritance diagram for lldb_private::StopInfoMachException:
[legend]

Public Member Functions

 StopInfoMachException (Thread &thread, uint32_t exc_type, uint32_t exc_data_count, uint64_t exc_code, uint64_t exc_subcode, bool not_stepping_but_got_singlestep_exception)
 ~StopInfoMachException () override=default
lldb::StopReason GetStopReason () const override
const char * GetDescription () override
bool WasContinueInterrupted (Thread &thread) override
 A Continue operation can result in a false stop event before any execution has happened.
Public Member Functions inherited from lldb_private::StopInfo
 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 bool ShouldStopSynchronous (Event *event_ptr)
void OverrideShouldNotify (bool override_value)
virtual bool ShouldNotify (Event *event_ptr)
virtual void WillResume (lldb::StateType resume_state)
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 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 CreateStopReasonWithMachException (Thread &thread, uint32_t exc_type, uint32_t exc_data_count, uint64_t exc_code, uint64_t exc_sub_code, uint64_t exc_sub_sub_code, bool pc_already_adjusted=true, bool adjust_pc_if_needed=false)
Static Public Member Functions inherited from lldb_private::StopInfo
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 Attributes

uint32_t m_exc_data_count
uint64_t m_exc_code
uint64_t m_exc_subcode
bool m_not_stepping_but_got_singlestep_exception
Protected Attributes inherited from lldb_private::StopInfo
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

bool DeterminePtrauthFailure (ExecutionContext &exe_ctx)
 Determine the pointer-authentication related failure that caused this exception.
bool DetermineTagMismatch (ExecutionContext &exe_ctx)

Additional Inherited Members

Protected Member Functions inherited from lldb_private::StopInfo
virtual void PerformAction (Event *event_ptr)
virtual bool DoShouldNotify (Event *event_ptr)
virtual bool ShouldStop (Event *event_ptr)
bool HasTargetRunSinceMe ()
void MakeStopInfoValid ()

Detailed Description

Definition at line 24 of file StopInfoMachException.h.

Constructor & Destructor Documentation

◆ StopInfoMachException()

lldb_private::StopInfoMachException::StopInfoMachException ( Thread & thread,
uint32_t exc_type,
uint32_t exc_data_count,
uint64_t exc_code,
uint64_t exc_subcode,
bool not_stepping_but_got_singlestep_exception )
inline

◆ ~StopInfoMachException()

lldb_private::StopInfoMachException::~StopInfoMachException ( )
overridedefault

Member Function Documentation

◆ CreateStopReasonWithMachException()

◆ DeterminePtrauthFailure()

◆ DetermineTagMismatch()

◆ GetDescription()

◆ GetStopReason()

lldb::StopReason lldb_private::StopInfoMachException::GetStopReason ( ) const
inlineoverridevirtual

Implements lldb_private::StopInfo.

Definition at line 45 of file StopInfoMachException.h.

References lldb::eStopReasonException.

◆ WasContinueInterrupted()

bool StopInfoMachException::WasContinueInterrupted ( Thread & thread)
overridevirtual

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 from lldb_private::StopInfo.

Definition at line 828 of file StopInfoMachException.cpp.

References lldb_private::GetLog(), LLDB_LOGF, m_not_stepping_but_got_singlestep_exception, lldb_private::Step, and lldb_private::StopInfo::Thread.

Member Data Documentation

◆ m_exc_code

uint64_t lldb_private::StopInfoMachException::m_exc_code
protected

◆ m_exc_data_count

uint32_t lldb_private::StopInfoMachException::m_exc_data_count
protected

◆ m_exc_subcode

uint64_t lldb_private::StopInfoMachException::m_exc_subcode
protected

◆ m_not_stepping_but_got_singlestep_exception

bool lldb_private::StopInfoMachException::m_not_stepping_but_got_singlestep_exception
protected

Definition at line 73 of file StopInfoMachException.h.

Referenced by StopInfoMachException(), and WasContinueInterrupted().


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