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

Formats libcxx's std::unordered_map iterators. More...

#include <LibCxx.h>

Inheritance diagram for lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd:
Collaboration graph
[legend]

Public Member Functions

 LibCxxUnorderedMapIteratorSyntheticFrontEnd (lldb::ValueObjectSP valobj_sp)
 
 ~LibCxxUnorderedMapIteratorSyntheticFrontEnd () override=default
 
size_t CalculateNumChildren () override
 
lldb::ValueObjectSP GetChildAtIndex (size_t idx) override
 
bool Update () override
 
bool MightHaveChildren () override
 
size_t GetIndexOfChildWithName (ConstString name) override
 
- Public Member Functions inherited from lldb_private::SyntheticChildrenFrontEnd
 SyntheticChildrenFrontEnd (ValueObject &backend)
 
virtual ~SyntheticChildrenFrontEnd ()=default
 
virtual size_t CalculateNumChildren (uint32_t max)
 
virtual lldb::ValueObjectSP GetSyntheticValue ()
 
virtual ConstString GetSyntheticTypeName ()
 

Private Attributes

ValueObjectm_iter_ptr = nullptr
 Held, not owned. More...
 
lldb::ValueObjectSP m_pair_sp
 ValueObject for the key/value pair that the iterator currently points to. More...
 

Additional Inherited Members

- Public Types inherited from lldb_private::SyntheticChildrenFrontEnd
typedef std::shared_ptr< SyntheticChildrenFrontEndSharedPointer
 
typedef std::unique_ptr< SyntheticChildrenFrontEndAutoPointer
 
- Protected Member Functions inherited from lldb_private::SyntheticChildrenFrontEnd
void SetValid (bool valid)
 
bool IsValid ()
 
lldb::ValueObjectSP CreateValueObjectFromExpression (llvm::StringRef name, llvm::StringRef expression, const ExecutionContext &exe_ctx)
 
lldb::ValueObjectSP CreateValueObjectFromAddress (llvm::StringRef name, uint64_t address, const ExecutionContext &exe_ctx, CompilerType type)
 
lldb::ValueObjectSP CreateValueObjectFromData (llvm::StringRef name, const DataExtractor &data, const ExecutionContext &exe_ctx, CompilerType type)
 
- Protected Attributes inherited from lldb_private::SyntheticChildrenFrontEnd
ValueObjectm_backend
 

Detailed Description

Formats libcxx's std::unordered_map iterators.

In raw form a std::unordered_map::iterator is represented as follows:

(lldb) var it –raw –ptr-depth 1 (std::__1::__hash_map_iterator< std::__1::__hash_iterator< std::__1::__hash_node< std::__1::__hash_value_type< std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void *> *> >) it = { __i_ = { __node_ = 0x0000600001700040 { __next_ = 0x0000600001704000 } } }

Definition at line 131 of file LibCxx.h.

Constructor & Destructor Documentation

◆ LibCxxUnorderedMapIteratorSyntheticFrontEnd()

lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::LibCxxUnorderedMapIteratorSyntheticFrontEnd ( lldb::ValueObjectSP  valobj_sp)

Definition at line 392 of file LibCxx.cpp.

References Update().

◆ ~LibCxxUnorderedMapIteratorSyntheticFrontEnd()

lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::~LibCxxUnorderedMapIteratorSyntheticFrontEnd ( )
overridedefault

Member Function Documentation

◆ CalculateNumChildren()

size_t lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::CalculateNumChildren ( )
overridevirtual

Implements lldb_private::SyntheticChildrenFrontEnd.

Definition at line 509 of file LibCxx.cpp.

◆ GetChildAtIndex()

lldb::ValueObjectSP lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::GetChildAtIndex ( size_t  idx)
overridevirtual

Implements lldb_private::SyntheticChildrenFrontEnd.

Definition at line 514 of file LibCxx.cpp.

◆ GetIndexOfChildWithName()

size_t lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::GetIndexOfChildWithName ( ConstString  name)
overridevirtual

Implements lldb_private::SyntheticChildrenFrontEnd.

Definition at line 526 of file LibCxx.cpp.

References UINT32_MAX.

◆ MightHaveChildren()

bool lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::MightHaveChildren ( )
overridevirtual

Implements lldb_private::SyntheticChildrenFrontEnd.

Definition at line 521 of file LibCxx.cpp.

◆ Update()

bool lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::Update ( )
overridevirtual

Member Data Documentation

◆ m_iter_ptr

ValueObject* lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::m_iter_ptr = nullptr
private

Held, not owned.

Child of iterator ValueObject supplied at construction.

Definition at line 149 of file LibCxx.h.

◆ m_pair_sp

lldb::ValueObjectSP lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::m_pair_sp
private

ValueObject for the key/value pair that the iterator currently points to.

Definition at line 152 of file LibCxx.h.


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