Go to the documentation of this file.
40 :
Thread(process, tid), m_thread_name(), m_dispatch_queue_name(),
69 const bool force =
false;
72 reg_ctx_sp->InvalidateIfNeeded(force);
86 lldb::RegisterContextSP
88 lldb::RegisterContextSP reg_ctx_sp;
94 if (concrete_frame_idx == 0) {
97 switch (
static_cast<ProcessKDP *
>(process_sp.get())
100 case llvm::MachO::CPU_TYPE_ARM:
102 std::make_shared<RegisterContextKDP_arm>(*
this, concrete_frame_idx);
105 reg_ctx_sp = std::make_shared<RegisterContextKDP_arm64>(
106 *
this, concrete_frame_idx);
108 case llvm::MachO::CPU_TYPE_I386:
109 reg_ctx_sp = std::make_shared<RegisterContextKDP_i386>(
110 *
this, concrete_frame_idx);
112 case llvm::MachO::CPU_TYPE_X86_64:
113 reg_ctx_sp = std::make_shared<RegisterContextKDP_x86_64>(
114 *
this, concrete_frame_idx);
117 llvm_unreachable(
"Add CPU type support in KDP");
142 uint8_t reply_command = exc_reply_packet.
GetU8(&offset);
159 const bool pc_already_adjusted =
false;
160 const bool adjust_pc_if_needed =
true;
163 StopInfoMachException::CreateStopReasonWithMachException(
164 *
this, exc_type, 2, exc_code, exc_subcode, 0, pc_already_adjusted,
165 adjust_pc_if_needed);
const char * GetQueueName() override
Retrieve the Queue name for the queue currently using this Thread.
virtual Unwind & GetUnwinder()
lldb::RegisterContextSP GetRegisterContext() override
void Dump(lldb_private::Log *log, uint32_t index)
uint32_t GetConcreteFrameIndex() const
Query this frame to find what frame it is in this Thread's StackFrameList, not counting inlined frame...
lldb::ProcessSP GetProcess() const
void SetStopInfoFrom_KDP_EXCEPTION(const lldb_private::DataExtractor &exc_reply_packet)
virtual void DestroyThread()
lldb::ProcessSP CalculateProcess() override
void SetStopInfo(const lldb::StopInfoSP &stop_info_sp)
lldb::RegisterContextSP CreateRegisterContextForFrame(lldb_private::StackFrame *frame) override
static bool ThreadIDIsValid(lldb::tid_t thread)
lldb::user_id_t GetID() const
Get accessor for the user ID.
lldb::RegisterContextSP CreateRegisterContextForFrame(StackFrame *frame)
lldb::RegisterContextSP m_reg_context_sp
The register context for this thread's current register state.
lldb::StopInfoSP m_cached_stop_info_sp
bool CalculateStopInfo() override
#define LLDB_INVALID_ADDRESS
#define LLDB_LOG(log,...)
The LLDB_LOG* macros defined below are the way to emit log messages.
A class that represents a running process on the host machine.
std::string m_thread_name
ThreadKDP(lldb_private::Process &process, lldb::tid_t tid)
const char * GetName() override
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
void RefreshStateAfterStop() override
bool ShouldStop(bool &step_more)
CommunicationKDP & GetCommunication()