|
LLDB mainline
|
#include <NativeThreadWindows.h>
Protected Types | |
| using | IndexMap = std::map<lldb::addr_t, uint32_t> |
Protected Attributes | |
| lldb::StateType | m_state = lldb::StateType::eStateInvalid |
| std::string | m_name |
| bool | m_single_stepping = false |
| lldb::addr_t | m_single_step_start_pc = LLDB_INVALID_ADDRESS |
| bool | m_single_step_trap_pending = false |
| std::unique_ptr< NativeRegisterContextWindows > | m_reg_context_up |
| IndexMap | m_watchpoint_index_map |
| IndexMap | m_hw_breakpoint_index_map |
| HostThread | m_host_thread |
| Protected Attributes inherited from lldb_private::NativeThreadProtocol | |
| NativeProcessProtocol & | m_process |
| lldb::tid_t | m_tid |
| ThreadStopInfo | m_stop_info = {} |
| std::string | m_stop_description |
Additional Inherited Members | |
| Protected Member Functions inherited from lldb_private::NativeThreadProtocol | |
| void | ClearStopInfo () |
Definition at line 22 of file NativeThreadWindows.h.
|
protected |
Definition at line 82 of file NativeThreadWindows.h.
| NativeThreadWindows::NativeThreadWindows | ( | NativeProcessWindows & | process, |
| const HostThread & | thread ) |
Definition at line 25 of file NativeThreadWindows.cpp.
References lldb_private::NativeRegisterContextWindows::CreateHostNativeRegisterContextWindows(), lldb_private::NativeProcessWindows::GetArchitecture(), m_host_thread, m_reg_context_up, and lldb_private::NativeThreadProtocol::NativeThreadProtocol().
|
overridedefault |
|
inline |
Definition at line 39 of file NativeThreadWindows.h.
References m_single_stepping.
Referenced by lldb_private::NativeProcessWindows::Resume().
| bool NativeThreadWindows::CompleteSingleStepWithoutTrap | ( | ) |
Called when a stop is reported.
Returns true if the single step of the last DoResume() moved the PC but its trap was not handled: the kernel holds that trap until the thread runs again.
Definition at line 111 of file NativeThreadWindows.cpp.
References lldb::eStopReasonInvalid, lldb::eStopReasonNone, GetRegisterContext(), LLDB_INVALID_ADDRESS, m_single_step_start_pc, m_single_step_trap_pending, and lldb_private::NativeThreadProtocol::m_stop_info.
| Status NativeThreadWindows::DoResume | ( | lldb::StateType | resume_state | ) |
Definition at line 49 of file NativeThreadWindows.cpp.
References lldb_private::NativeThreadProtocol::ClearStopInfo(), lldb::eErrorTypeWin32, lldb::eStateRunning, lldb::eStateStepping, lldb_private::NativeRegisterContext::GetPC(), GetRegisterContext(), GetState(), LLDB_INVALID_ADDRESS, m_host_thread, m_single_step_start_pc, m_single_stepping, m_state, SetSingleStepFlag(), and lldb_private::Status.
| Status NativeThreadWindows::DoStop | ( | ) |
Definition at line 34 of file NativeThreadWindows.cpp.
References lldb::eErrorTypeWin32, lldb::eStateStopped, GetRegisterContext(), lldb_private::NativeRegisterContextRegisterInfo::InvalidateAllRegisters(), m_host_thread, m_state, and lldb_private::Status.
Referenced by lldb_private::NativeProcessWindows::OnLoadDll(), and lldb_private::NativeProcessWindows::OnUnloadDll().
|
overridevirtual |
Reimplemented from lldb_private::NativeThreadProtocol.
Definition at line 218 of file NativeThreadWindows.cpp.
References m_host_thread.
|
inline |
Definition at line 71 of file NativeThreadWindows.h.
References m_host_thread.
Referenced by lldb_private::NativeRegisterContextWindows::GetThreadHandle().
|
overridevirtual |
Implements lldb_private::NativeThreadProtocol.
Definition at line 123 of file NativeThreadWindows.cpp.
References lldb_private::GetLog(), LLDB_LOGF, m_host_thread, m_name, and lldb_private::Thread.
|
inlineoverridevirtual |
Implements lldb_private::NativeThreadProtocol.
Definition at line 51 of file NativeThreadWindows.h.
References m_reg_context_up.
Referenced by CompleteSingleStepWithoutTrap(), DoResume(), DoStop(), and SetSingleStepFlag().
|
inlineoverridevirtual |
Implements lldb_private::NativeThreadProtocol.
Definition at line 49 of file NativeThreadWindows.h.
References m_state.
Referenced by DoResume().
|
overridevirtual |
Implements lldb_private::NativeThreadProtocol.
Definition at line 153 of file NativeThreadWindows.cpp.
References lldb::eStateAttaching, lldb::eStateConnected, lldb::eStateCrashed, lldb::eStateDetached, lldb::eStateExited, lldb::eStateInvalid, lldb::eStateLaunching, lldb::eStateRunning, lldb::eStateStepping, lldb::eStateStopped, lldb::eStateSuspended, lldb::eStateUnloaded, lldb_private::NativeThreadProtocol::GetID(), lldb_private::GetLog(), LLDB_LOGF, m_state, lldb_private::NativeThreadProtocol::m_stop_description, lldb_private::NativeThreadProtocol::m_stop_info, lldb_private::StateAsCString(), and lldb_private::Thread.
|
inline |
Whether the last DoResume() single-stepped this thread.
Definition at line 32 of file NativeThreadWindows.h.
References m_single_stepping.
|
overridevirtual |
Implements lldb_private::NativeThreadProtocol.
Definition at line 214 of file NativeThreadWindows.cpp.
References lldb_private::Status::FromErrorString().
|
overridevirtual |
Implements lldb_private::NativeThreadProtocol.
Definition at line 198 of file NativeThreadWindows.cpp.
References lldb_private::Status::FromErrorString(), m_reg_context_up, m_watchpoint_index_map, and lldb_private::Status.
Referenced by SetWatchpoint().
|
overridevirtual |
Implements lldb_private::NativeThreadProtocol.
Definition at line 209 of file NativeThreadWindows.cpp.
References lldb_private::Status::FromErrorString().
| void NativeThreadWindows::SetSingleStepFlag | ( | ) |
Definition at line 85 of file NativeThreadWindows.cpp.
References lldb_private::NativeRegisterContext::ConvertRegisterKindToRegisterNumber(), lldb::eRegisterKindGeneric, lldb_private::NativeProcessProtocol::GetArchitecture(), lldb_private::GetLog(), lldb_private::ArchSpec::GetMachine(), lldb_private::NativeThreadProtocol::GetProcess(), GetRegisterContext(), LLDB_LOG, LLDB_REGNUM_GENERIC_FLAGS, lldb_private::NativeRegisterContext::ReadRegisterAsUnsigned(), lldb_private::Thread, and lldb_private::NativeRegisterContext::WriteRegisterFromUnsigned().
Referenced by DoResume().
| void NativeThreadWindows::SetStopReason | ( | ThreadStopInfo | stop_info, |
| std::string | description ) |
Definition at line 146 of file NativeThreadWindows.cpp.
References lldb::eStateStopped, m_state, lldb_private::NativeThreadProtocol::m_stop_description, and lldb_private::NativeThreadProtocol::m_stop_info.
Referenced by lldb_private::NativeProcessWindows::OnLoadDll(), and lldb_private::NativeProcessWindows::OnUnloadDll().
|
overridevirtual |
Implements lldb_private::NativeThreadProtocol.
Definition at line 181 of file NativeThreadWindows.cpp.
References error(), lldb::eStateLaunching, lldb_private::Status::FromErrorString(), LLDB_INVALID_INDEX32, m_reg_context_up, m_state, m_watchpoint_index_map, RemoveWatchpoint(), and lldb_private::Status.
|
inline |
Definition at line 41 of file NativeThreadWindows.h.
References m_single_step_trap_pending.
|
protected |
Definition at line 85 of file NativeThreadWindows.h.
Referenced by DoResume(), DoStop(), GetExtendedInfo(), GetHostThread(), GetName(), and NativeThreadWindows().
|
protected |
Definition at line 84 of file NativeThreadWindows.h.
|
protected |
Definition at line 75 of file NativeThreadWindows.h.
Referenced by GetName().
|
protected |
Definition at line 79 of file NativeThreadWindows.h.
Referenced by GetRegisterContext(), NativeThreadWindows(), RemoveWatchpoint(), and SetWatchpoint().
|
protected |
Definition at line 77 of file NativeThreadWindows.h.
Referenced by CompleteSingleStepWithoutTrap(), and DoResume().
|
protected |
Definition at line 78 of file NativeThreadWindows.h.
Referenced by CompleteSingleStepWithoutTrap(), and TakePendingSingleStepTrap().
|
protected |
Definition at line 76 of file NativeThreadWindows.h.
Referenced by ClearSingleStepping(), DoResume(), and IsSingleStepping().
|
protected |
Definition at line 74 of file NativeThreadWindows.h.
Referenced by DoResume(), DoStop(), GetState(), GetStopReason(), SetStopReason(), and SetWatchpoint().
|
protected |
Definition at line 83 of file NativeThreadWindows.h.
Referenced by RemoveWatchpoint(), and SetWatchpoint().