LLDB mainline
|
#include <StopInfo.h>
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. |
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 StopInfo & | operator= (const StopInfo &)=delete |
Friends | |
class | Process::ProcessEventData |
class | ThreadPlanBase |
class | ThreadPlanReverseContinue |
class | Thread |
Definition at line 20 of file StopInfo.h.
StopInfo::StopInfo | ( | Thread & | thread, |
uint64_t | value ) |
Definition at line 34 of file StopInfo.cpp.
References lldb_private::eLazyBoolCalculate, m_description, m_extended_info, m_override_should_notify, m_override_should_stop, m_resume_id, m_stop_id, m_thread_wp, m_value, and Thread.
Referenced by lldb_private::InstrumentationRuntimeStopInfo::InstrumentationRuntimeStopInfo(), operator=(), 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::StopInfoThreadPlan::StopInfoThreadPlan(), lldb_private::StopInfoTrace::StopInfoTrace(), lldb_private::StopInfoUnixSignal::StopInfoUnixSignal(), lldb_private::StopInfoVFork::StopInfoVFork(), lldb_private::StopInfoVForkDone::StopInfoVForkDone(), and lldb_private::StopInfoWatchpoint::StopInfoWatchpoint().
|
virtualdefault |
|
privatedelete |
References StopInfo().
|
static |
Definition at line 1620 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1611 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1606 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1590 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::ScriptedThread::CalculateStopInfo(), lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), lldb_private::ThreadPlanStepInRange::DoWillResume(), lldb_private::ProcessWindows::RefreshStateAfterStop(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1627 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1633 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
|
static |
References Thread.
|
static |
Definition at line 1601 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::ScriptedThread::CalculateStopInfo(), ThreadMachCore::CalculateStopInfo(), lldb_private::minidump::ProcessMinidump::RefreshStateAfterStop(), lldb_private::ProcessWindows::RefreshStateAfterStop(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1616 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1585 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::HandleThreadAsyncInterrupt().
|
static |
Definition at line 1594 of file StopInfo.cpp.
Referenced by lldb_private::Thread::GetStopInfo().
|
static |
Definition at line 1578 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::ScriptedThread::CalculateStopInfo(), ThreadElfCore::CalculateStopInfo(), ThreadKDP::CalculateStopInfo(), lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), lldb_private::platform_linux::PlatformLinux::GetStopInfoFromSiginfo(), lldb_private::minidump::ProcessMinidump::RefreshStateAfterStop(), lldb_private::Thread::SetStopInfoToNothing(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1571 of file StopInfo.cpp.
References Thread.
Referenced by lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), lldb_private::ProcessWindows::RefreshStateAfterStop(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
Reimplemented in lldb_private::InstrumentationRuntimeStopInfo, lldb_private::StopInfoBreakpoint, and lldb_private::StopInfoUnixSignal.
Definition at line 210 of file StopInfo.h.
Referenced by ShouldNotify().
|
static |
Definition at line 1658 of file StopInfo.cpp.
References DoNoSelectMostRelevantFrame.
Referenced by CommandObjectFrameDiagnose::DoExecute(), and lldb_private::Process::HandleProcessStateChangedEvent().
|
inlinevirtual |
Reimplemented in lldb_private::InstrumentationRuntimeStopInfo, lldb_private::StopInfoBreakpoint, lldb_private::StopInfoException, lldb_private::StopInfoExec, lldb_private::StopInfoFork, lldb_private::StopInfoHistoryBoundary, lldb_private::StopInfoInterrupt, lldb_private::StopInfoMachException, lldb_private::StopInfoProcessorTrace, lldb_private::StopInfoThreadPlan, lldb_private::StopInfoTrace, lldb_private::StopInfoUnixSignal, lldb_private::StopInfoVFork, lldb_private::StopInfoVForkDone, and lldb_private::StopInfoWatchpoint.
Definition at line 72 of file StopInfo.h.
References m_description.
|
static |
Definition at line 1647 of file StopInfo.cpp.
References lldb::eStopReasonPlanComplete, and lldb_private::StopInfoThreadPlan::GetExpressionVariable().
Referenced by lldb_private::FormatEntity::Format().
|
inline |
Definition at line 125 of file StopInfo.h.
References m_extended_info.
|
inline |
Definition at line 121 of file StopInfo.h.
References lldb_private::eLazyBoolYes, and m_override_should_stop.
|
inline |
Definition at line 117 of file StopInfo.h.
References lldb_private::eLazyBoolCalculate, and m_override_should_stop.
|
static |
Definition at line 1637 of file StopInfo.cpp.
References lldb::eStopReasonPlanComplete, and lldb_private::StopInfoThreadPlan::GetReturnValueObject().
Referenced by lldb_private::FormatEntity::Format(), and lldb::SBThread::GetStopReturnValue().
|
pure virtual |
Implemented in lldb_private::InstrumentationRuntimeStopInfo, lldb_private::StopInfoBreakpoint, lldb_private::StopInfoException, lldb_private::StopInfoExec, lldb_private::StopInfoFork, lldb_private::StopInfoHistoryBoundary, lldb_private::StopInfoInterrupt, lldb_private::StopInfoMachException, lldb_private::StopInfoProcessorTrace, lldb_private::StopInfoThreadPlan, lldb_private::StopInfoTrace, lldb_private::StopInfoUnixSignal, lldb_private::StopInfoVFork, lldb_private::StopInfoVForkDone, and lldb_private::StopInfoWatchpoint.
Referenced by ShouldSelect().
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoBreakpoint, lldb_private::StopInfoException, lldb_private::StopInfoFork, lldb_private::StopInfoInterrupt, lldb_private::StopInfoUnixSignal, lldb_private::StopInfoVFork, and lldb_private::StopInfoWatchpoint.
Definition at line 101 of file StopInfo.h.
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoBreakpoint, lldb_private::StopInfoException, lldb_private::StopInfoFork, lldb_private::StopInfoInterrupt, lldb_private::StopInfoUnixSignal, lldb_private::StopInfoVFork, and lldb_private::StopInfoWatchpoint.
Definition at line 100 of file StopInfo.h.
|
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.
|
inline |
Definition at line 35 of file StopInfo.h.
References m_thread_wp.
Referenced by lldb_private::StopInfoBreakpoint::GetBreakpointSiteSP(), lldb_private::InstrumentationRuntimeStopInfo::GetSuggestedStackFrameIndex(), lldb_private::StopInfoTrace::GetSuggestedStackFrameIndex(), lldb_private::StopInfoBreakpoint::PerformAction(), and lldb_private::StopInfoThreadPlan::StopInfoThreadPlan().
|
inline |
Definition at line 46 of file StopInfo.h.
References m_value.
Referenced by lldb_private::StopInfoMachException::GetDescription(), lldb_private::StopInfoException::GetStopReasonDataAtIndex(), lldb_private::StopInfoFork::GetStopReasonDataAtIndex(), lldb_private::StopInfoInterrupt::GetStopReasonDataAtIndex(), lldb_private::StopInfoUnixSignal::GetStopReasonDataAtIndex(), lldb_private::StopInfoVFork::GetStopReasonDataAtIndex(), lldb_private::StopInfoWatchpoint::GetStopReasonDataAtIndex(), lldb_private::StopInfoWatchpoint::PerformAction(), and lldb_private::StopInfoWatchpoint::ShouldStopSynchronous().
|
protected |
Definition at line 56 of file StopInfo.cpp.
References lldb::eStateRunning, lldb::eStateStopped, m_resume_id, and m_thread_wp.
Referenced by lldb_private::StopInfoBreakpoint::PerformAction(), and lldb_private::StopInfoWatchpoint::PerformAction().
bool StopInfo::IsValid | ( | ) | const |
Definition at line 41 of file StopInfo.cpp.
References m_stop_id, and m_thread_wp.
Referenced by ShouldShow().
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoBreakpoint.
Definition at line 93 of file StopInfo.h.
References Thread.
|
protected |
Definition at line 48 of file StopInfo.cpp.
References m_resume_id, m_stop_id, and m_thread_wp.
References StopInfo().
|
inline |
Definition at line 56 of file StopInfo.h.
References lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, and m_override_should_notify.
|
inline |
Definition at line 113 of file StopInfo.h.
References lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, and m_override_should_stop.
|
inlineprotectedvirtual |
Reimplemented in lldb_private::StopInfoBreakpoint, lldb_private::StopInfoExec, lldb_private::StopInfoFork, lldb_private::StopInfoVFork, lldb_private::StopInfoVForkDone, and lldb_private::StopInfoWatchpoint.
Definition at line 208 of file StopInfo.h.
|
inlinevirtual |
Definition at line 74 of file StopInfo.h.
References m_description.
Referenced by lldb_private::StopInfoException::StopInfoException(), lldb_private::StopInfoHistoryBoundary::StopInfoHistoryBoundary(), lldb_private::StopInfoInterrupt::StopInfoInterrupt(), lldb_private::StopInfoProcessorTrace::StopInfoProcessorTrace(), and lldb_private::StopInfoUnixSignal::StopInfoUnixSignal().
|
inline |
Definition at line 33 of file StopInfo.h.
References m_thread_wp.
Definition at line 61 of file StopInfo.h.
References DoShouldNotify(), lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolYes, and m_override_should_notify.
|
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().
|
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().
Reimplemented in lldb_private::StopInfoBreakpoint, lldb_private::StopInfoExec, lldb_private::StopInfoFork, lldb_private::StopInfoThreadPlan, lldb_private::StopInfoUnixSignal, lldb_private::StopInfoVFork, lldb_private::StopInfoVForkDone, and lldb_private::StopInfoWatchpoint.
Definition at line 219 of file StopInfo.h.
Referenced by lldb_private::StopInfoThreadPlan::ShouldStop().
Reimplemented in lldb_private::StopInfoBreakpoint, lldb_private::StopInfoUnixSignal, and lldb_private::StopInfoWatchpoint.
Definition at line 54 of file StopInfo.h.
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.
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoUnixSignal.
Definition at line 68 of file StopInfo.h.
|
friend |
Definition at line 21 of file StopInfo.h.
|
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().
|
friend |
|
friend |
Definition at line 23 of file StopInfo.h.
References Thread, and ThreadPlanReverseContinue.
Referenced by ThreadPlanReverseContinue.
|
protected |
Definition at line 227 of file StopInfo.h.
Referenced by lldb_private::StopInfoMachException::DeterminePtrauthFailure(), lldb_private::StopInfoMachException::DetermineTagMismatch(), lldb_private::InstrumentationRuntimeStopInfo::GetDescription(), GetDescription(), lldb_private::StopInfoBreakpoint::GetDescription(), lldb_private::StopInfoException::GetDescription(), lldb_private::StopInfoHistoryBoundary::GetDescription(), lldb_private::StopInfoInterrupt::GetDescription(), lldb_private::StopInfoMachException::GetDescription(), lldb_private::StopInfoProcessorTrace::GetDescription(), lldb_private::StopInfoThreadPlan::GetDescription(), lldb_private::StopInfoTrace::GetDescription(), lldb_private::StopInfoUnixSignal::GetDescription(), lldb_private::StopInfoWatchpoint::GetDescription(), lldb_private::InstrumentationRuntimeStopInfo::InstrumentationRuntimeStopInfo(), SetDescription(), and StopInfo().
|
protected |
Definition at line 232 of file StopInfo.h.
Referenced by GetExtendedInfo(), lldb_private::InstrumentationRuntimeStopInfo::InstrumentationRuntimeStopInfo(), and StopInfo().
|
protected |
Definition at line 228 of file StopInfo.h.
Referenced by OverrideShouldNotify(), ShouldNotify(), and StopInfo().
|
protected |
Definition at line 229 of file StopInfo.h.
Referenced by GetOverriddenShouldStopValue(), GetOverrideShouldStop(), OverrideShouldStop(), and StopInfo().
|
protected |
Definition at line 224 of file StopInfo.h.
Referenced by HasTargetRunSinceMe(), MakeStopInfoValid(), and StopInfo().
|
protected |
Definition at line 223 of file StopInfo.h.
Referenced by IsValid(), MakeStopInfoValid(), and StopInfo().
|
protected |
Definition at line 222 of file StopInfo.h.
Referenced by lldb_private::StopInfoUnixSignal::DoShouldNotify(), lldb_private::StopInfoBreakpoint::GetDescription(), lldb_private::StopInfoMachException::GetDescription(), lldb_private::StopInfoUnixSignal::GetDescription(), lldb_private::StopInfoBreakpoint::GetSuggestedStackFrameIndex(), GetThread(), HasTargetRunSinceMe(), lldb_private::StopInfoUnixSignal::IsShouldStopSignal(), IsValid(), MakeStopInfoValid(), lldb_private::StopInfoBreakpoint::PerformAction(), lldb_private::StopInfoExec::PerformAction(), lldb_private::StopInfoFork::PerformAction(), lldb_private::StopInfoVFork::PerformAction(), lldb_private::StopInfoVForkDone::PerformAction(), lldb_private::StopInfoWatchpoint::PerformAction(), SetThread(), lldb_private::StopInfoExec::ShouldStop(), lldb_private::StopInfoBreakpoint::ShouldStopSynchronous(), lldb_private::StopInfoUnixSignal::ShouldStopSynchronous(), lldb_private::StopInfoWatchpoint::ShouldStopSynchronous(), StopInfo(), lldb_private::StopInfoBreakpoint::StoreBPInfo(), and lldb_private::StopInfoUnixSignal::WillResume().
|
protected |
Definition at line 225 of file StopInfo.h.
Referenced by lldb_private::StopInfoMachException::DeterminePtrauthFailure(), lldb_private::StopInfoMachException::DetermineTagMismatch(), lldb_private::StopInfoUnixSignal::DoShouldNotify(), lldb_private::StopInfoBreakpoint::GetBreakpointSiteSP(), lldb_private::StopInfoBreakpoint::GetDescription(), lldb_private::StopInfoMachException::GetDescription(), lldb_private::StopInfoUnixSignal::GetDescription(), lldb_private::StopInfoWatchpoint::GetDescription(), GetValue(), lldb_private::StopInfoUnixSignal::IsShouldStopSignal(), lldb_private::StopInfoBreakpoint::PerformAction(), lldb_private::StopInfoWatchpoint::PerformAction(), lldb_private::StopInfoBreakpoint::ShouldStopSynchronous(), lldb_private::StopInfoUnixSignal::ShouldStopSynchronous(), StopInfo(), and lldb_private::StopInfoUnixSignal::WillResume().