34using namespace minidump;
37 llvm::ArrayRef<uint8_t> gpregset_data)
38 :
Thread(process, td.ThreadId), m_thread_reg_ctx_sp(),
39 m_gpregset_data(gpregset_data) {}
55 uint32_t concrete_frame_idx = 0;
60 if (concrete_frame_idx == 0) {
71 case llvm::Triple::x86: {
77 *
this, reg_interface, gpregset,
78 llvm::ArrayRef<lldb_private::CoreNote>());
81 case llvm::Triple::x86_64: {
87 *
this, reg_interface, gpregset,
88 llvm::ArrayRef<lldb_private::CoreNote>());
91 case llvm::Triple::aarch64: {
95 std::make_shared<RegisterContextMinidump_ARM64>(*
this, data);
98 case llvm::Triple::arm: {
101 const bool apple = arch.
GetTriple().getVendor() == llvm::Triple::Apple;
103 std::make_shared<RegisterContextMinidump_ARM>(*
this, data, apple);
112 reg_ctx_sp =
m_unwinder_up->CreateRegisterContextForFrame(frame);
An architecture specification class.
llvm::Triple & GetTriple()
Architecture triple accessor.
llvm::Triple::ArchType GetMachine() const
Returns a machine family for the current architecture.
A plug-in interface definition class for debugging a process.
RegisterInfo interface to patch RegisterInfo structure for archs.
This base class provides an interface to stack frames.
uint32_t GetConcreteFrameIndex() const
Query this frame to find what frame it is in this Thread's StackFrameList, not counting inlined frame...
std::unique_ptr< lldb_private::Unwind > m_unwinder_up
It gets set in Thread::ShouldResume.
lldb::ProcessSP GetProcess() const
lldb::RegisterContextSP m_reg_context_sp
The register context for this thread's current register state.
ArchSpec GetArchitecture()
void RefreshStateAfterStop() override
lldb::RegisterContextSP CreateRegisterContextForFrame(StackFrame *frame) override
ThreadMinidump(Process &process, const minidump::Thread &td, llvm::ArrayRef< uint8_t > gpregset_data)
lldb::RegisterContextSP GetRegisterContext() override
bool CalculateStopInfo() override
Ask the thread subclass to set its stop info.
llvm::ArrayRef< uint8_t > m_gpregset_data
~ThreadMinidump() override
lldb::RegisterContextSP m_thread_reg_ctx_sp
lldb::DataBufferSP ConvertMinidumpContext_x86_32(llvm::ArrayRef< uint8_t > source_data, RegisterInfoInterface *target_reg_interface)
lldb::DataBufferSP ConvertMinidumpContext_x86_64(llvm::ArrayRef< uint8_t > source_data, RegisterInfoInterface *target_reg_interface)
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
std::shared_ptr< lldb_private::RegisterContext > RegisterContextSP