LLDB mainline
|
Formats libcxx's std::unordered_map iterators. More...
#include <LibCxx.h>
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 |
![]() | |
SyntheticChildrenFrontEnd (ValueObject &backend) | |
virtual | ~SyntheticChildrenFrontEnd ()=default |
virtual size_t | CalculateNumChildren ()=0 |
virtual size_t | CalculateNumChildren (uint32_t max) |
virtual lldb::ValueObjectSP | GetChildAtIndex (size_t idx)=0 |
virtual size_t | GetIndexOfChildWithName (ConstString name)=0 |
virtual bool | Update ()=0 |
virtual bool | MightHaveChildren ()=0 |
virtual lldb::ValueObjectSP | GetSyntheticValue () |
virtual ConstString | GetSyntheticTypeName () |
Private Attributes | |
ValueObject * | m_iter_ptr = nullptr |
Held, not owned. | |
lldb::ValueObjectSP | m_pair_sp |
ValueObject for the key/value pair that the iterator currently points to. | |
Additional Inherited Members | |
![]() | |
typedef std::shared_ptr< SyntheticChildrenFrontEnd > | SharedPointer |
typedef std::unique_ptr< SyntheticChildrenFrontEnd > | AutoPointer |
![]() | |
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) |
![]() | |
ValueObject & | m_backend |
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 } } }
lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::LibCxxUnorderedMapIteratorSyntheticFrontEnd | ( | lldb::ValueObjectSP | valobj_sp | ) |
Definition at line 395 of file LibCxx.cpp.
References Update().
|
overridedefault |
|
overridevirtual |
Implements lldb_private::SyntheticChildrenFrontEnd.
Definition at line 511 of file LibCxx.cpp.
|
overridevirtual |
Implements lldb_private::SyntheticChildrenFrontEnd.
Definition at line 516 of file LibCxx.cpp.
|
overridevirtual |
Implements lldb_private::SyntheticChildrenFrontEnd.
Definition at line 528 of file LibCxx.cpp.
References UINT32_MAX.
|
overridevirtual |
Implements lldb_private::SyntheticChildrenFrontEnd.
Definition at line 523 of file LibCxx.cpp.
|
overridevirtual |
Implements lldb_private::SyntheticChildrenFrontEnd.
Definition at line 402 of file LibCxx.cpp.
References lldb_private::ValueObject::GetValueForExpressionPathOptions::DontCheckDotVsArrowSyntax(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeVoid, error(), lldb_private::CompilerType::GetByteSize(), lldb_private::CompilerType::GetFieldAtIndex(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::GetTypeTemplateArgument(), LLDB_INVALID_ADDRESS, and lldb_private::ValueObject::GetValueForExpressionPathOptions::SetSyntheticChildrenTraversal().
Referenced by LibCxxUnorderedMapIteratorSyntheticFrontEnd().
|
private |
Held, not owned.
Child of iterator ValueObject supplied at construction.
|
private |
ValueObject for the key/value pair that the iterator currently points to.