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. | |
void | OverrideShouldStop (bool override_value) |
bool | GetOverrideShouldStop () |
bool | GetOverriddenShouldStopValue () |
StructuredData::ObjectSP | GetExtendedInfo () |
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 | Thread |
Definition at line 20 of file StopInfo.h.
StopInfo::StopInfo | ( | Thread & | thread, |
uint64_t | value | ||
) |
Definition at line 34 of file StopInfo.cpp.
|
virtualdefault |
|
privatedelete |
|
static |
Definition at line 1503 of file StopInfo.cpp.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1494 of file StopInfo.cpp.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1478 of file StopInfo.cpp.
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 1510 of file StopInfo.cpp.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1516 of file StopInfo.cpp.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Referenced by lldb_private::ScriptedThread::CalculateStopInfo(), lldb_private::process_gdb_remote::ProcessGDBRemote::CalculateThreadStopInfo(), lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), GetStopInfoForHardwareBP(), lldb_private::ProcessWindows::RefreshStateAfterStop(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
|
static |
Definition at line 1489 of file StopInfo.cpp.
Referenced by ThreadMachCore::CalculateStopInfo(), lldb_private::ScriptedThread::CalculateStopInfo(), lldb_private::minidump::ProcessMinidump::RefreshStateAfterStop(), lldb_private::ProcessWindows::RefreshStateAfterStop(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1499 of file StopInfo.cpp.
Referenced by lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
Definition at line 1473 of file StopInfo.cpp.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::HandleThreadAsyncInterrupt().
|
static |
Definition at line 1482 of file StopInfo.cpp.
Referenced by lldb_private::Thread::GetStopInfo().
|
static |
Definition at line 1466 of file StopInfo.cpp.
References lldb_private::Thread::GetProcess().
Referenced by ThreadElfCore::CalculateStopInfo(), ThreadKDP::CalculateStopInfo(), lldb_private::ScriptedThread::CalculateStopInfo(), lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), lldb_private::minidump::ProcessMinidump::RefreshStateAfterStop(), lldb_private::Thread::SetStopInfoToNothing(), and lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo().
|
static |
|
inlineprotectedvirtual |
Reimplemented in lldb_private::InstrumentationRuntimeStopInfo, lldb_private::StopInfoBreakpoint, and lldb_private::StopInfoUnixSignal.
Definition at line 184 of file StopInfo.h.
Referenced by ShouldNotify().
|
static |
Definition at line 1541 of file StopInfo.cpp.
References DoNoSelectMostRelevantFrame.
Referenced by CommandObjectFrameDiagnose::DoExecute(), and lldb_private::Process::HandleProcessStateChangedEvent().
|
inlinevirtual |
Reimplemented in lldb_private::InstrumentationRuntimeStopInfo, lldb_private::StopInfoMachException, lldb_private::StopInfoBreakpoint, lldb_private::StopInfoWatchpoint, lldb_private::StopInfoUnixSignal, lldb_private::StopInfoInterrupt, lldb_private::StopInfoTrace, lldb_private::StopInfoException, lldb_private::StopInfoProcessorTrace, lldb_private::StopInfoThreadPlan, lldb_private::StopInfoExec, lldb_private::StopInfoFork, lldb_private::StopInfoVFork, and lldb_private::StopInfoVForkDone.
Definition at line 71 of file StopInfo.h.
References m_description.
|
static |
Definition at line 1530 of file StopInfo.cpp.
References lldb::eStopReasonPlanComplete, and lldb_private::StopInfoThreadPlan::GetExpressionVariable().
Referenced by lldb_private::FormatEntity::Format().
|
inline |
Definition at line 118 of file StopInfo.h.
References m_extended_info.
|
inline |
Definition at line 114 of file StopInfo.h.
References lldb_private::eLazyBoolYes, and m_override_should_stop.
|
inline |
Definition at line 110 of file StopInfo.h.
References lldb_private::eLazyBoolCalculate, and m_override_should_stop.
|
static |
Definition at line 1520 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::StopInfoMachException, lldb_private::StopInfoBreakpoint, lldb_private::StopInfoWatchpoint, lldb_private::StopInfoUnixSignal, lldb_private::StopInfoInterrupt, lldb_private::StopInfoTrace, lldb_private::StopInfoException, lldb_private::StopInfoProcessorTrace, lldb_private::StopInfoThreadPlan, lldb_private::StopInfoExec, lldb_private::StopInfoFork, lldb_private::StopInfoVFork, and lldb_private::StopInfoVForkDone.
|
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::StopInfoBreakpoint, and lldb_private::StopInfoTrace.
Definition at line 88 of file StopInfo.h.
|
inline |
Definition at line 34 of file StopInfo.h.
References m_thread_wp.
Referenced by lldb_private::StopInfoTrace::GetSuggestedStackFrameIndex(), and lldb_private::StopInfoBreakpoint::PerformAction().
|
inline |
Definition at line 45 of file StopInfo.h.
References m_value.
Referenced by lldb_private::StopInfoMachException::GetDescription(), 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.
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoBreakpoint.
Definition at line 92 of file StopInfo.h.
|
protected |
Definition at line 48 of file StopInfo.cpp.
References m_resume_id, m_stop_id, and m_thread_wp.
|
inline |
Definition at line 55 of file StopInfo.h.
References lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, and m_override_should_notify.
|
inline |
Definition at line 106 of file StopInfo.h.
References lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, and m_override_should_stop.
|
inlineprotectedvirtual |
Reimplemented in lldb_private::StopInfoBreakpoint, lldb_private::StopInfoWatchpoint, lldb_private::StopInfoExec, lldb_private::StopInfoFork, lldb_private::StopInfoVFork, and lldb_private::StopInfoVForkDone.
Definition at line 182 of file StopInfo.h.
|
inlinevirtual |
Definition at line 73 of file StopInfo.h.
References m_description.
Referenced by lldb_private::StopInfoException::StopInfoException(), lldb_private::StopInfoInterrupt::StopInfoInterrupt(), lldb_private::StopInfoProcessorTrace::StopInfoProcessorTrace(), and lldb_private::StopInfoUnixSignal::StopInfoUnixSignal().
|
inline |
Definition at line 32 of file StopInfo.h.
References m_thread_wp.
|
inlinevirtual |
Definition at line 60 of file StopInfo.h.
References DoShouldNotify(), lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolYes, and m_override_should_notify.
|
inlineprotectedvirtual |
Reimplemented in lldb_private::StopInfoBreakpoint, lldb_private::StopInfoWatchpoint, lldb_private::StopInfoUnixSignal, lldb_private::StopInfoThreadPlan, lldb_private::StopInfoExec, lldb_private::StopInfoFork, lldb_private::StopInfoVFork, and lldb_private::StopInfoVForkDone.
Definition at line 193 of file StopInfo.h.
Referenced by lldb_private::StopInfoThreadPlan::ShouldStop().
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoBreakpoint, lldb_private::StopInfoWatchpoint, and lldb_private::StopInfoUnixSignal.
Definition at line 53 of file StopInfo.h.
|
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 97 of file StopInfo.h.
|
inlinevirtual |
Reimplemented in lldb_private::StopInfoUnixSignal.
Definition at line 67 of file StopInfo.h.
Referenced by lldb_private::Thread::ShouldResume().
|
friend |
Definition at line 21 of file StopInfo.h.
|
friend |
Definition at line 219 of file StopInfo.h.
|
friend |
Definition at line 22 of file StopInfo.h.
|
protected |
Definition at line 201 of file StopInfo.h.
Referenced by lldb_private::StopInfoMachException::DeterminePtrauthFailure(), GetDescription(), lldb_private::InstrumentationRuntimeStopInfo::GetDescription(), lldb_private::StopInfoMachException::GetDescription(), lldb_private::StopInfoBreakpoint::GetDescription(), lldb_private::StopInfoWatchpoint::GetDescription(), lldb_private::StopInfoUnixSignal::GetDescription(), lldb_private::StopInfoInterrupt::GetDescription(), lldb_private::StopInfoTrace::GetDescription(), lldb_private::StopInfoException::GetDescription(), lldb_private::StopInfoProcessorTrace::GetDescription(), lldb_private::StopInfoThreadPlan::GetDescription(), lldb_private::InstrumentationRuntimeStopInfo::InstrumentationRuntimeStopInfo(), and SetDescription().
|
protected |
Definition at line 206 of file StopInfo.h.
Referenced by GetExtendedInfo(), and lldb_private::InstrumentationRuntimeStopInfo::InstrumentationRuntimeStopInfo().
|
protected |
Definition at line 202 of file StopInfo.h.
Referenced by OverrideShouldNotify(), and ShouldNotify().
|
protected |
Definition at line 203 of file StopInfo.h.
Referenced by GetOverriddenShouldStopValue(), GetOverrideShouldStop(), and OverrideShouldStop().
|
protected |
Definition at line 198 of file StopInfo.h.
Referenced by HasTargetRunSinceMe(), and MakeStopInfoValid().
|
protected |
Definition at line 197 of file StopInfo.h.
Referenced by IsValid(), and MakeStopInfoValid().
|
protected |
Definition at line 196 of file StopInfo.h.
Referenced by lldb_private::StopInfoUnixSignal::DoShouldNotify(), lldb_private::StopInfoMachException::GetDescription(), lldb_private::StopInfoBreakpoint::GetDescription(), lldb_private::StopInfoUnixSignal::GetDescription(), lldb_private::StopInfoBreakpoint::GetSuggestedStackFrameIndex(), GetThread(), HasTargetRunSinceMe(), IsValid(), MakeStopInfoValid(), lldb_private::StopInfoBreakpoint::PerformAction(), lldb_private::StopInfoWatchpoint::PerformAction(), lldb_private::StopInfoExec::PerformAction(), lldb_private::StopInfoFork::PerformAction(), lldb_private::StopInfoVFork::PerformAction(), lldb_private::StopInfoVForkDone::PerformAction(), SetThread(), lldb_private::StopInfoUnixSignal::ShouldStop(), lldb_private::StopInfoExec::ShouldStop(), lldb_private::StopInfoBreakpoint::ShouldStopSynchronous(), lldb_private::StopInfoWatchpoint::ShouldStopSynchronous(), lldb_private::StopInfoUnixSignal::ShouldStopSynchronous(), lldb_private::StopInfoBreakpoint::StoreBPInfo(), and lldb_private::StopInfoUnixSignal::WillResume().
|
protected |
Definition at line 199 of file StopInfo.h.
Referenced by lldb_private::StopInfoMachException::DeterminePtrauthFailure(), lldb_private::StopInfoUnixSignal::DoShouldNotify(), lldb_private::StopInfoMachException::GetDescription(), lldb_private::StopInfoBreakpoint::GetDescription(), lldb_private::StopInfoWatchpoint::GetDescription(), lldb_private::StopInfoUnixSignal::GetDescription(), lldb_private::StopInfoBreakpoint::GetSuggestedStackFrameIndex(), GetValue(), lldb_private::StopInfoBreakpoint::IsValidForOperatingSystemThread(), lldb_private::StopInfoBreakpoint::PerformAction(), lldb_private::StopInfoWatchpoint::PerformAction(), lldb_private::StopInfoUnixSignal::ShouldStop(), lldb_private::StopInfoBreakpoint::ShouldStopSynchronous(), lldb_private::StopInfoUnixSignal::ShouldStopSynchronous(), lldb_private::StopInfoBreakpoint::StoreBPInfo(), and lldb_private::StopInfoUnixSignal::WillResume().