diff options
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp')
-rw-r--r-- | lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp index a97264f..02113ba 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp @@ -49,7 +49,7 @@ public: lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override; private: ExecutionContextRef m_exe_ctx_ref; @@ -68,7 +68,8 @@ public: lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override; + private: // The lifetime of a ValueObject and all its derivative ValueObjects @@ -145,13 +146,15 @@ LibstdcppMapIteratorSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) { return lldb::ValueObjectSP(); } -size_t LibstdcppMapIteratorSyntheticFrontEnd::GetIndexOfChildWithName( +llvm::Expected<size_t> +LibstdcppMapIteratorSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { if (name == "first") return 0; if (name == "second") return 1; - return UINT32_MAX; + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * @@ -226,11 +229,12 @@ VectorIteratorSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) { return lldb::ValueObjectSP(); } -size_t VectorIteratorSyntheticFrontEnd::GetIndexOfChildWithName( - ConstString name) { +llvm::Expected<size_t> +VectorIteratorSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (name == "item") return 0; - return UINT32_MAX; + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } bool lldb_private::formatters::LibStdcppStringSummaryProvider( @@ -409,13 +413,14 @@ lldb::ChildCacheState LibStdcppSharedPtrSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t LibStdcppSharedPtrSyntheticFrontEnd::GetIndexOfChildWithName( - ConstString name) { +llvm::Expected<size_t> +LibStdcppSharedPtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (name == "pointer") return 0; if (name == "object" || name == "$$dereference$$") return 1; - return UINT32_MAX; + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * |