29 std::vector<lldb::addr_t> pcs,
30 bool pcs_are_call_addresses)
31 :
Thread(process, tid, true), m_framelist_mutex(), m_framelist(),
33 m_thread_name(), m_originating_unique_thread_id(tid),
36 std::make_unique<HistoryUnwind>(*
this, pcs, pcs_are_call_addresses);
38 LLDB_LOGF(log,
"%p HistoryThread::HistoryThread",
static_cast<void *
>(
this));
45 LLDB_LOGF(log,
"%p HistoryThread::~HistoryThread (tid=0x%" PRIx64
")",
46 static_cast<void *
>(
this),
GetID());
52 if (
m_pcs.size() > 0) {
53 rctx = std::make_shared<RegisterContextHistory>(
#define LLDB_LOGF(log,...)
std::mutex m_framelist_mutex
lldb::RegisterContextSP GetRegisterContext() override
virtual lldb::StackFrameListSP GetStackFrameList()
uint32_t GetExtendedBacktraceOriginatingIndexID() override
HistoryThread(lldb_private::Process &process, lldb::tid_t tid, std::vector< lldb::addr_t > pcs, bool pcs_are_call_addresses=false)
lldb::RegisterContextSP CreateRegisterContextForFrame(StackFrame *frame) override
std::vector< lldb::addr_t > m_pcs
lldb::tid_t m_originating_unique_thread_id
~HistoryThread() override
lldb::StackFrameListSP m_framelist
A plug-in interface definition class for debugging a process.
This base class provides an interface to stack frames.
virtual void DestroyThread()
std::unique_ptr< lldb_private::Unwind > m_unwinder_up
It gets set in Thread::ShouldResume.
lldb::ProcessSP GetProcess() const
#define LLDB_INVALID_QUEUE_ID
#define LLDB_INVALID_THREAD_ID
#define LLDB_INVALID_ADDRESS
A class that represents a running process on the host machine.
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
std::shared_ptr< lldb_private::RegisterContext > RegisterContextSP
std::shared_ptr< lldb_private::StackFrameList > StackFrameListSP
lldb::user_id_t GetID() const
Get accessor for the user ID.