9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_THREADMEMORY_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_THREADMEMORY_H
110 associated_with_libdispatch_queue);
127 return Thread::GetProtocolID();
142 thread_sp->SetBackedThread(*
this);
143 return thread_sp.get();
165 llvm::StringRef name)
189 llvm::StringRef queue,
201 void SetQueueName(
const char *name)
override { Thread::SetQueueName(name); }
208 Thread::SetQueueID(new_val);
216 Thread::SetQueueKind(kind);
224 return Thread::GetQueueLibdispatchQueueAddress();
229 Thread::SetQueueLibdispatchQueueAddress(dispatch_queue_t);
234 return Thread::ThreadHasQueueInformation();
239 return Thread::GetAssociatedWithLibdispatchQueue();
245 Thread::SetAssociatedWithLibdispatchQueue(
246 associated_with_libdispatch_queue);
void SetQueueID(lldb::queue_id_t new_val) override
TODO: this method should take into account the queue override.
lldb_private::LazyBool GetAssociatedWithLibdispatchQueue() override
TODO: this method should take into account the queue override.
lldb::ValueObjectSP & GetValueObject()
lldb::ValueObjectSP m_thread_info_valobj_sp
void SetQueueLibdispatchQueueAddress(lldb::addr_t dispatch_queue_t) override
TODO: this method should take into account the queue override.
void SetAssociatedWithLibdispatchQueue(lldb_private::LazyBool associated_with_libdispatch_queue) override
TODO: this method should take into account the queue override.
lldb::QueueKind GetQueueKind() override
TODO: this method should take into account the queue override.
ThreadMemoryProvidingNameAndQueue(const ThreadMemoryProvidingNameAndQueue &)=delete
const char * GetQueueName() override
Retrieve the Queue name for the queue currently using this Thread.
bool ThreadHasQueueInformation() const override
TODO: this method should take into account the queue override.
lldb::QueueSP GetQueue() override
TODO: this method should take into account the queue override.
void SetQueueName(const char *name) override
TODO: this method should take into account the queue override.
void SetQueueKind(lldb::QueueKind kind) override
TODO: this method should take into account the queue override.
lldb::queue_id_t GetQueueID() override
TODO: this method should take into account the queue override.
ThreadMemoryProvidingNameAndQueue(lldb_private::Process &process, lldb::tid_t tid, const lldb::ValueObjectSP &thread_info_valobj_sp)
const ThreadMemoryProvidingNameAndQueue & operator=(const ThreadMemoryProvidingNameAndQueue &)=delete
~ThreadMemoryProvidingNameAndQueue() override=default
lldb::addr_t GetQueueLibdispatchQueueAddress() override
TODO: this method should take into account the queue override.
~ThreadMemoryProvidingName() override=default
ThreadMemoryProvidingName(lldb_private::Process &process, lldb::tid_t tid, lldb::addr_t register_data_addr, llvm::StringRef name)
const char * GetName() override
void SetQueueKind(lldb::QueueKind kind) override
lldb::addr_t m_register_data_addr
const char * GetInfo() override
lldb_private::LazyBool GetAssociatedWithLibdispatchQueue() override
Whether this thread can be associated with a libdispatch queue.
void DidResume() override
void SetQueueLibdispatchQueueAddress(lldb::addr_t dispatch_queue_t) override
ThreadMemory(lldb_private::Process &process, lldb::tid_t tid, lldb::addr_t register_data_addr)
lldb::addr_t GetQueueLibdispatchQueueAddress() override
Retrieve the address of the libdispatch_queue_t struct for queue currently using this Thread.
lldb::ThreadSP GetBackingThread() const override
const ThreadMemory & operator=(const ThreadMemory &)=delete
bool IsOperatingSystemPluginThread() const override
lldb::ThreadSP m_backing_thread_sp
const char * GetQueueName() override
Retrieve the Queue name for the queue currently using this Thread.
lldb::RegisterContextSP GetRegisterContext() override
lldb::QueueKind GetQueueKind() override
Retrieve the Queue kind for the queue currently using this Thread.
lldb::QueueSP GetQueue() override
Retrieve the Queue for this thread, if any.
void SetQueueID(lldb::queue_id_t new_val) override
void RefreshStateAfterStop() override
const char * GetName() override
void SetAssociatedWithLibdispatchQueue(lldb_private::LazyBool associated_with_libdispatch_queue) override
ThreadMemory(const ThreadMemory &)=delete
void SetQueueName(const char *name) override
lldb::queue_id_t GetQueueID() override
Retrieve the Queue ID for the queue currently using this Thread.
lldb::RegisterContextSP CreateRegisterContextForFrame(lldb_private::StackFrame *frame) override
void ClearBackingThread() override
bool ThreadHasQueueInformation() const override
Whether this Thread already has all the Queue information cached or not.
bool CalculateStopInfo() override
Ask the thread subclass to set its stop info.
bool SetBackingThread(const lldb::ThreadSP &thread_sp) override
void WillResume(lldb::StateType resume_state) override
lldb::user_id_t GetProtocolID() const override
void ClearStackFrames() override
A plug-in interface definition class for debugging a process.
This base class provides an interface to stack frames.
Thread(Process &process, lldb::tid_t tid, bool use_invalid_index_id=false)
Constructor.
#define LLDB_INVALID_QUEUE_ID
#define LLDB_INVALID_ADDRESS
std::shared_ptr< lldb_private::Queue > QueueSP
std::shared_ptr< lldb_private::Thread > ThreadSP
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
StateType
Process and Thread States.
std::shared_ptr< lldb_private::RegisterContext > RegisterContextSP