LLDB  mainline
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
lldb_private::QueueItem Class Reference

#include <QueueItem.h>

Inheritance diagram for lldb_private::QueueItem:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::QueueItem:
Collaboration graph
[legend]

Public Member Functions

 QueueItem (lldb::QueueSP queue_sp, lldb::ProcessSP process_sp, lldb::addr_t item_ref, lldb_private::Address address)
 
 ~QueueItem ()
 
lldb::QueueItemKind GetKind ()
 Get the kind of work item this is. More...
 
void SetKind (lldb::QueueItemKind item_kind)
 Set the type of work item this is. More...
 
lldb_private::AddressGetAddress ()
 Get the code address that will be executed when this work item is executed. More...
 
void SetAddress (lldb_private::Address addr)
 Set the work item address for this object. More...
 
bool IsValid ()
 Check if this QueueItem object is valid. More...
 
lldb::ThreadSP GetExtendedBacktraceThread (ConstString type)
 Get an extended backtrace thread for this queue item, if available. More...
 
void SetItemThatEnqueuedThis (lldb::addr_t address_of_item)
 
lldb::addr_t GetItemThatEnqueuedThis ()
 
void SetEnqueueingThreadID (lldb::tid_t tid)
 
lldb::tid_t GetEnqueueingThreadID ()
 
void SetEnqueueingQueueID (lldb::queue_id_t qid)
 
lldb::queue_id_t GetEnqueueingQueueID ()
 
void SetTargetQueueID (lldb::queue_id_t qid)
 
void SetStopID (uint32_t stop_id)
 
uint32_t GetStopID ()
 
void SetEnqueueingBacktrace (std::vector< lldb::addr_t > backtrace)
 
std::vector< lldb::addr_t > & GetEnqueueingBacktrace ()
 
void SetThreadLabel (std::string thread_name)
 
std::string GetThreadLabel ()
 
void SetQueueLabel (std::string queue_name)
 
std::string GetQueueLabel ()
 
void SetTargetQueueLabel (std::string queue_name)
 
lldb::ProcessSP GetProcessSP ()
 

Protected Member Functions

void FetchEntireItem ()
 

Protected Attributes

lldb::QueueWP m_queue_wp
 
lldb::ProcessWP m_process_wp
 
lldb::addr_t m_item_ref
 
lldb_private::Address m_address
 
bool m_have_fetched_entire_item
 
lldb::QueueItemKind m_kind
 
lldb::addr_t m_item_that_enqueued_this_ref
 
lldb::tid_t m_enqueueing_thread_id
 
lldb::queue_id_t m_enqueueing_queue_id
 
lldb::queue_id_t m_target_queue_id
 
uint32_t m_stop_id
 
std::vector< lldb::addr_tm_backtrace
 
std::string m_thread_label
 
std::string m_queue_label
 
std::string m_target_queue_label
 

Private Member Functions

 QueueItem (const QueueItem &)=delete
 
const QueueItemoperator= (const QueueItem &)=delete
 

Detailed Description

Definition at line 32 of file QueueItem.h.

Constructor & Destructor Documentation

◆ QueueItem() [1/2]

lldb_private::QueueItem::QueueItem ( lldb::QueueSP  queue_sp,
lldb::ProcessSP  process_sp,
lldb::addr_t  item_ref,
lldb_private::Address  address 
)

◆ ~QueueItem()

QueueItem::~QueueItem ( )
default

◆ QueueItem() [2/2]

lldb_private::QueueItem::QueueItem ( const QueueItem )
privatedelete

Member Function Documentation

◆ FetchEntireItem()

void QueueItem::FetchEntireItem ( )
protected

◆ GetAddress()

Address & QueueItem::GetAddress ( )

Get the code address that will be executed when this work item is executed.

Returns
The address that will be invoked when this work item is executed. Not all types of QueueItems will have an address associated with them; check that the returned Address is valid, or check that the WorkItemKind is a kind that involves an address, such as eQueueItemKindFunction or eQueueItemKindBlock.

Definition at line 39 of file QueueItem.cpp.

References m_address.

◆ GetEnqueueingBacktrace()

std::vector< lldb::addr_t > & QueueItem::GetEnqueueingBacktrace ( )

Definition at line 78 of file QueueItem.cpp.

References FetchEntireItem(), and m_backtrace.

◆ GetEnqueueingQueueID()

lldb::queue_id_t QueueItem::GetEnqueueingQueueID ( )

Definition at line 68 of file QueueItem.cpp.

References FetchEntireItem(), and m_enqueueing_queue_id.

◆ GetEnqueueingThreadID()

lldb::tid_t QueueItem::GetEnqueueingThreadID ( )

Definition at line 63 of file QueueItem.cpp.

References FetchEntireItem(), and m_enqueueing_thread_id.

◆ GetExtendedBacktraceThread()

ThreadSP QueueItem::GetExtendedBacktraceThread ( ConstString  type)

Get an extended backtrace thread for this queue item, if available.

If the backtrace/thread information was collected when this item was enqueued, this call will provide it.

Parameters
[in]typeThe type of extended backtrace being requested, e.g. "libdispatch" or "pthread".
Returns
A thread shared pointer which will have a reference to an extended thread if one was available.

Definition at line 43 of file QueueItem.cpp.

References FetchEntireItem(), and m_queue_wp.

◆ GetItemThatEnqueuedThis()

lldb::addr_t QueueItem::GetItemThatEnqueuedThis ( )

Definition at line 58 of file QueueItem.cpp.

References FetchEntireItem(), and m_item_that_enqueued_this_ref.

◆ GetKind()

QueueItemKind QueueItem::GetKind ( )

Get the kind of work item this is.

Returns
The type of work item that this QueueItem object represents. eQueueItemKindUnknown may be returned.

Definition at line 32 of file QueueItem.cpp.

References FetchEntireItem(), and m_kind.

◆ GetProcessSP()

ProcessSP QueueItem::GetProcessSP ( )

Definition at line 93 of file QueueItem.cpp.

References m_process_wp.

◆ GetQueueLabel()

std::string QueueItem::GetQueueLabel ( )

Definition at line 88 of file QueueItem.cpp.

References FetchEntireItem(), and m_queue_label.

◆ GetStopID()

uint32_t QueueItem::GetStopID ( )

Definition at line 73 of file QueueItem.cpp.

References FetchEntireItem(), and m_stop_id.

◆ GetThreadLabel()

std::string QueueItem::GetThreadLabel ( )

Definition at line 83 of file QueueItem.cpp.

References FetchEntireItem(), and m_thread_label.

◆ IsValid()

bool lldb_private::QueueItem::IsValid ( )
inline

Check if this QueueItem object is valid.

If the weak pointer to the parent Queue cannot be revivified, it is invalid.

Returns
True if this object is valid.

Definition at line 78 of file QueueItem.h.

References m_queue_wp.

◆ operator=()

const QueueItem& lldb_private::QueueItem::operator= ( const QueueItem )
privatedelete

◆ SetAddress()

void QueueItem::SetAddress ( lldb_private::Address  addr)

Set the work item address for this object.

Parameters
[in]addrThe address that will be invoked when this work item is executed.

Definition at line 41 of file QueueItem.cpp.

References m_address.

◆ SetEnqueueingBacktrace()

void lldb_private::QueueItem::SetEnqueueingBacktrace ( std::vector< lldb::addr_t backtrace)
inline

Definition at line 116 of file QueueItem.h.

References m_backtrace.

Referenced by SystemRuntimeMacOSX::CompleteQueueItem().

◆ SetEnqueueingQueueID()

void lldb_private::QueueItem::SetEnqueueingQueueID ( lldb::queue_id_t  qid)
inline

Definition at line 104 of file QueueItem.h.

References m_enqueueing_queue_id.

Referenced by SystemRuntimeMacOSX::CompleteQueueItem().

◆ SetEnqueueingThreadID()

void lldb_private::QueueItem::SetEnqueueingThreadID ( lldb::tid_t  tid)
inline

Definition at line 100 of file QueueItem.h.

References m_enqueueing_thread_id.

Referenced by SystemRuntimeMacOSX::CompleteQueueItem().

◆ SetItemThatEnqueuedThis()

void lldb_private::QueueItem::SetItemThatEnqueuedThis ( lldb::addr_t  address_of_item)
inline

Definition at line 94 of file QueueItem.h.

References m_item_that_enqueued_this_ref.

Referenced by SystemRuntimeMacOSX::CompleteQueueItem().

◆ SetKind()

void QueueItem::SetKind ( lldb::QueueItemKind  item_kind)

Set the type of work item this is.

Parameters
[in]item_kindSet the kind of this work item object.

Definition at line 37 of file QueueItem.cpp.

References m_kind.

◆ SetQueueLabel()

void lldb_private::QueueItem::SetQueueLabel ( std::string  queue_name)
inline

Definition at line 126 of file QueueItem.h.

References m_queue_label.

Referenced by SystemRuntimeMacOSX::CompleteQueueItem().

◆ SetStopID()

void lldb_private::QueueItem::SetStopID ( uint32_t  stop_id)
inline

Definition at line 112 of file QueueItem.h.

References m_stop_id.

Referenced by SystemRuntimeMacOSX::CompleteQueueItem().

◆ SetTargetQueueID()

void lldb_private::QueueItem::SetTargetQueueID ( lldb::queue_id_t  qid)
inline

Definition at line 110 of file QueueItem.h.

References m_target_queue_id.

◆ SetTargetQueueLabel()

void lldb_private::QueueItem::SetTargetQueueLabel ( std::string  queue_name)
inline

Definition at line 130 of file QueueItem.h.

References m_target_queue_label.

Referenced by SystemRuntimeMacOSX::CompleteQueueItem().

◆ SetThreadLabel()

void lldb_private::QueueItem::SetThreadLabel ( std::string  thread_name)
inline

Definition at line 122 of file QueueItem.h.

References m_thread_label.

Referenced by SystemRuntimeMacOSX::CompleteQueueItem().

Member Data Documentation

◆ m_address

lldb_private::Address lldb_private::QueueItem::m_address
protected

Definition at line 144 of file QueueItem.h.

Referenced by GetAddress(), and SetAddress().

◆ m_backtrace

std::vector<lldb::addr_t> lldb_private::QueueItem::m_backtrace
protected

Definition at line 156 of file QueueItem.h.

Referenced by GetEnqueueingBacktrace(), and SetEnqueueingBacktrace().

◆ m_enqueueing_queue_id

lldb::queue_id_t lldb_private::QueueItem::m_enqueueing_queue_id
protected

Definition at line 153 of file QueueItem.h.

Referenced by GetEnqueueingQueueID(), and SetEnqueueingQueueID().

◆ m_enqueueing_thread_id

lldb::tid_t lldb_private::QueueItem::m_enqueueing_thread_id
protected

Definition at line 151 of file QueueItem.h.

Referenced by GetEnqueueingThreadID(), and SetEnqueueingThreadID().

◆ m_have_fetched_entire_item

bool lldb_private::QueueItem::m_have_fetched_entire_item
protected

Definition at line 145 of file QueueItem.h.

Referenced by FetchEntireItem().

◆ m_item_ref

lldb::addr_t lldb_private::QueueItem::m_item_ref
protected

Definition at line 142 of file QueueItem.h.

Referenced by FetchEntireItem().

◆ m_item_that_enqueued_this_ref

lldb::addr_t lldb_private::QueueItem::m_item_that_enqueued_this_ref
protected

Definition at line 148 of file QueueItem.h.

Referenced by GetItemThatEnqueuedThis(), and SetItemThatEnqueuedThis().

◆ m_kind

lldb::QueueItemKind lldb_private::QueueItem::m_kind
protected

Definition at line 147 of file QueueItem.h.

Referenced by GetKind(), and SetKind().

◆ m_process_wp

lldb::ProcessWP lldb_private::QueueItem::m_process_wp
protected

Definition at line 140 of file QueueItem.h.

Referenced by FetchEntireItem(), and GetProcessSP().

◆ m_queue_label

std::string lldb_private::QueueItem::m_queue_label
protected

Definition at line 158 of file QueueItem.h.

Referenced by GetQueueLabel(), and SetQueueLabel().

◆ m_queue_wp

lldb::QueueWP lldb_private::QueueItem::m_queue_wp
protected

Definition at line 139 of file QueueItem.h.

Referenced by GetExtendedBacktraceThread(), and IsValid().

◆ m_stop_id

uint32_t lldb_private::QueueItem::m_stop_id
protected

Definition at line 155 of file QueueItem.h.

Referenced by GetStopID(), and SetStopID().

◆ m_target_queue_id

lldb::queue_id_t lldb_private::QueueItem::m_target_queue_id
protected

Definition at line 154 of file QueueItem.h.

Referenced by SetTargetQueueID().

◆ m_target_queue_label

std::string lldb_private::QueueItem::m_target_queue_label
protected

Definition at line 159 of file QueueItem.h.

Referenced by SetTargetQueueLabel().

◆ m_thread_label

std::string lldb_private::QueueItem::m_thread_label
protected

Definition at line 157 of file QueueItem.h.

Referenced by GetThreadLabel(), and SetThreadLabel().


The documentation for this class was generated from the following files: