From f7d5ef804a3e470f29039943111fa1f79e756b00 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Tue, 22 Apr 2025 12:09:02 +0100 Subject: [PATCH 01/17] [lldb] Upgrade GetIndexOfChildWithName to use llvm::Expected --- lldb/include/lldb/API/SBValue.h | 2 + .../lldb/DataFormatters/TypeSynthetic.h | 11 ++-- .../lldb/DataFormatters/VectorIterator.h | 2 +- .../lldb/Interpreter/ScriptInterpreter.h | 5 +- lldb/include/lldb/Symbol/CompilerType.h | 5 +- lldb/include/lldb/Symbol/TypeSystem.h | 9 ++- lldb/include/lldb/ValueObject/ValueObject.h | 2 +- .../lldb/ValueObject/ValueObjectRegister.h | 2 +- .../ValueObject/ValueObjectSyntheticFilter.h | 2 +- lldb/source/API/SBValue.cpp | 10 +++- .../DataFormatters/FormatterBytecode.cpp | 9 ++- lldb/source/DataFormatters/TypeSynthetic.cpp | 9 +-- lldb/source/DataFormatters/VectorType.cpp | 5 +- .../Language/CPlusPlus/BlockPointer.cpp | 16 ++++-- .../Plugins/Language/CPlusPlus/Coroutines.cpp | 9 ++- .../Plugins/Language/CPlusPlus/Coroutines.h | 2 +- .../Language/CPlusPlus/GenericBitset.cpp | 2 +- .../Language/CPlusPlus/GenericOptional.cpp | 2 +- .../Plugins/Language/CPlusPlus/LibCxx.cpp | 14 +++-- .../Plugins/Language/CPlusPlus/LibCxx.h | 4 +- .../Language/CPlusPlus/LibCxxAtomic.cpp | 11 +++- .../CPlusPlus/LibCxxInitializerList.cpp | 5 +- .../Plugins/Language/CPlusPlus/LibCxxList.cpp | 2 +- .../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 12 ++-- .../Language/CPlusPlus/LibCxxProxyArray.cpp | 5 +- .../Language/CPlusPlus/LibCxxQueue.cpp | 9 ++- .../CPlusPlus/LibCxxRangesRefView.cpp | 2 +- .../Language/CPlusPlus/LibCxxSliceArray.cpp | 8 ++- .../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 9 +-- .../Language/CPlusPlus/LibCxxTuple.cpp | 2 +- .../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 13 +++-- .../Language/CPlusPlus/LibCxxValarray.cpp | 8 ++- .../Language/CPlusPlus/LibCxxVariant.cpp | 9 ++- .../Language/CPlusPlus/LibCxxVector.cpp | 16 ++++-- .../Plugins/Language/CPlusPlus/LibStdcpp.cpp | 25 ++++---- .../Language/CPlusPlus/LibStdcppTuple.cpp | 6 +- .../CPlusPlus/LibStdcppUniquePointer.cpp | 9 +-- lldb/source/Plugins/Language/ObjC/Cocoa.cpp | 5 +- lldb/source/Plugins/Language/ObjC/NSArray.cpp | 23 ++++---- .../Plugins/Language/ObjC/NSDictionary.cpp | 57 +++++++++++-------- lldb/source/Plugins/Language/ObjC/NSError.cpp | 5 +- .../Plugins/Language/ObjC/NSException.cpp | 5 +- .../Plugins/Language/ObjC/NSIndexPath.cpp | 5 +- lldb/source/Plugins/Language/ObjC/NSSet.cpp | 25 ++++---- .../Python/ScriptInterpreterPython.cpp | 16 ++++-- .../Python/ScriptInterpreterPythonImpl.h | 5 +- .../TypeSystem/Clang/TypeSystemClang.cpp | 2 +- .../TypeSystem/Clang/TypeSystemClang.h | 7 ++- lldb/source/Symbol/CompilerType.cpp | 5 +- lldb/source/ValueObject/ValueObject.cpp | 3 +- .../ValueObject/ValueObjectRegister.cpp | 6 +- .../ValueObjectSyntheticFilter.cpp | 37 ++++++------ 52 files changed, 288 insertions(+), 191 deletions(-) diff --git a/lldb/include/lldb/API/SBValue.h b/lldb/include/lldb/API/SBValue.h index 75d20a4378f09..69c50ab038e5b 100644 --- a/lldb/include/lldb/API/SBValue.h +++ b/lldb/include/lldb/API/SBValue.h @@ -13,6 +13,8 @@ #include "lldb/API/SBDefines.h" #include "lldb/API/SBType.h" +#include "lldb/Core/Value.h" + class ValueImpl; class ValueLocker; diff --git a/lldb/include/lldb/DataFormatters/TypeSynthetic.h b/lldb/include/lldb/DataFormatters/TypeSynthetic.h index 14e516964f250..a132c63a93b08 100644 --- a/lldb/include/lldb/DataFormatters/TypeSynthetic.h +++ b/lldb/include/lldb/DataFormatters/TypeSynthetic.h @@ -51,7 +51,7 @@ class SyntheticChildrenFrontEnd { virtual lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) = 0; - virtual size_t GetIndexOfChildWithName(ConstString name) = 0; + virtual llvm::Expected GetIndexOfChildWithName(ConstString name) = 0; /// This function is assumed to always succeed and if it fails, the front-end /// should know to deal with it in the correct way (most probably, by refusing @@ -117,8 +117,9 @@ class SyntheticValueProviderFrontEnd : public SyntheticChildrenFrontEnd { lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override { return nullptr; } - size_t GetIndexOfChildWithName(ConstString name) override { - return UINT32_MAX; + llvm::Expected GetIndexOfChildWithName(ConstString name) override { + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } lldb::ChildCacheState Update() override { @@ -343,7 +344,7 @@ class TypeFilterImpl : public SyntheticChildren { bool MightHaveChildren() override { return filter->GetCount() > 0; } - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; typedef std::shared_ptr SharedPointer; @@ -442,7 +443,7 @@ class ScriptedSyntheticChildren : public SyntheticChildren { bool MightHaveChildren() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; lldb::ValueObjectSP GetSyntheticValue() override; diff --git a/lldb/include/lldb/DataFormatters/VectorIterator.h b/lldb/include/lldb/DataFormatters/VectorIterator.h index d095f085cabab..bdfaca7349c6a 100644 --- a/lldb/include/lldb/DataFormatters/VectorIterator.h +++ b/lldb/include/lldb/DataFormatters/VectorIterator.h @@ -30,7 +30,7 @@ class VectorIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ExecutionContextRef m_exe_ctx_ref; diff --git a/lldb/include/lldb/Interpreter/ScriptInterpreter.h b/lldb/include/lldb/Interpreter/ScriptInterpreter.h index 25e82779f05c6..5425e58f0d594 100644 --- a/lldb/include/lldb/Interpreter/ScriptInterpreter.h +++ b/lldb/include/lldb/Interpreter/ScriptInterpreter.h @@ -368,10 +368,11 @@ class ScriptInterpreter : public PluginInterface { return lldb::ValueObjectSP(); } - virtual int + virtual llvm::Expected GetIndexOfChildWithName(const StructuredData::ObjectSP &implementor, const char *child_name) { - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + child_name); } virtual bool diff --git a/lldb/include/lldb/Symbol/CompilerType.h b/lldb/include/lldb/Symbol/CompilerType.h index 671b5314c24a2..fdbc2057ac10f 100644 --- a/lldb/include/lldb/Symbol/CompilerType.h +++ b/lldb/include/lldb/Symbol/CompilerType.h @@ -444,8 +444,9 @@ class CompilerType { /// Lookup a child given a name. This function will match base class names and /// member member names in "clang_type" only, not descendants. - uint32_t GetIndexOfChildWithName(llvm::StringRef name, - bool omit_empty_base_classes) const; + llvm::Expected + GetIndexOfChildWithName(llvm::StringRef name, + bool omit_empty_base_classes) const; /// Lookup a child member given a name. This function will match member names /// only and will descend into "clang_type" children in search for the first diff --git a/lldb/include/lldb/Symbol/TypeSystem.h b/lldb/include/lldb/Symbol/TypeSystem.h index 9e9edc09a0846..df87fea32b72a 100644 --- a/lldb/include/lldb/Symbol/TypeSystem.h +++ b/lldb/include/lldb/Symbol/TypeSystem.h @@ -373,9 +373,12 @@ class TypeSystem : public PluginInterface, bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj, uint64_t &language_flags) = 0; - virtual uint32_t GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, - llvm::StringRef name, - bool omit_empty_base_classes) = 0; + // Lookup a child given a name. This function will match base class names and + // member member names in "clang_type" only, not descendants. + virtual llvm::Expected + GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, + llvm::StringRef name, + bool omit_empty_base_classes) = 0; virtual size_t GetIndexOfChildMemberWithName( lldb::opaque_compiler_type_t type, llvm::StringRef name, diff --git a/lldb/include/lldb/ValueObject/ValueObject.h b/lldb/include/lldb/ValueObject/ValueObject.h index 06d2589002ed0..0add8ebeccdc8 100644 --- a/lldb/include/lldb/ValueObject/ValueObject.h +++ b/lldb/include/lldb/ValueObject/ValueObject.h @@ -498,7 +498,7 @@ class ValueObject { virtual lldb::ValueObjectSP GetChildMemberWithName(llvm::StringRef name, bool can_create = true); - virtual size_t GetIndexOfChildWithName(llvm::StringRef name); + virtual llvm::Expected GetIndexOfChildWithName(llvm::StringRef name); llvm::Expected GetNumChildren(uint32_t max = UINT32_MAX); /// Like \c GetNumChildren but returns 0 on error. You probably diff --git a/lldb/include/lldb/ValueObject/ValueObjectRegister.h b/lldb/include/lldb/ValueObject/ValueObjectRegister.h index 0812dc575aaa1..3db4b00bd1b15 100644 --- a/lldb/include/lldb/ValueObject/ValueObjectRegister.h +++ b/lldb/include/lldb/ValueObject/ValueObjectRegister.h @@ -52,7 +52,7 @@ class ValueObjectRegisterSet : public ValueObject { lldb::ValueObjectSP GetChildMemberWithName(llvm::StringRef name, bool can_create = true) override; - size_t GetIndexOfChildWithName(llvm::StringRef name) override; + llvm::Expected GetIndexOfChildWithName(llvm::StringRef name) override; protected: bool UpdateValue() override; diff --git a/lldb/include/lldb/ValueObject/ValueObjectSyntheticFilter.h b/lldb/include/lldb/ValueObject/ValueObjectSyntheticFilter.h index df205a258a997..cdb2b1ddc3646 100644 --- a/lldb/include/lldb/ValueObject/ValueObjectSyntheticFilter.h +++ b/lldb/include/lldb/ValueObject/ValueObjectSyntheticFilter.h @@ -57,7 +57,7 @@ class ValueObjectSynthetic : public ValueObject { lldb::ValueObjectSP GetChildMemberWithName(llvm::StringRef name, bool can_create = true) override; - size_t GetIndexOfChildWithName(llvm::StringRef name) override; + llvm::Expected GetIndexOfChildWithName(llvm::StringRef name) override; lldb::ValueObjectSP GetDynamicValue(lldb::DynamicValueType valueType) override; diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp index 6b91120f6427a..7b23484023ab3 100644 --- a/lldb/source/API/SBValue.cpp +++ b/lldb/source/API/SBValue.cpp @@ -704,13 +704,17 @@ SBValue SBValue::GetChildAtIndex(uint32_t idx, uint32_t SBValue::GetIndexOfChildWithName(const char *name) { LLDB_INSTRUMENT_VA(this, name); - uint32_t idx = UINT32_MAX; ValueLocker locker; lldb::ValueObjectSP value_sp(GetSP(locker)); if (value_sp) { - idx = value_sp->GetIndexOfChildWithName(name); + auto idx_or_err = value_sp->GetIndexOfChildWithName(name); + if (!idx_or_err) { + llvm::consumeError(idx_or_err.takeError()); + return UINT32_MAX; + } + return *idx_or_err; } - return idx; + return UINT32_MAX; } SBValue SBValue::GetChildMemberWithName(const char *name) { diff --git a/lldb/source/DataFormatters/FormatterBytecode.cpp b/lldb/source/DataFormatters/FormatterBytecode.cpp index 7f3dbe0dba37d..5d65c3043427f 100644 --- a/lldb/source/DataFormatters/FormatterBytecode.cpp +++ b/lldb/source/DataFormatters/FormatterBytecode.cpp @@ -14,6 +14,7 @@ #include "llvm/Support/Format.h" #include "llvm/Support/FormatProviders.h" #include "llvm/Support/FormatVariadicDetails.h" +#include using namespace lldb; namespace lldb_private { @@ -489,7 +490,13 @@ llvm::Error Interpret(std::vector &control, TYPE_CHECK(Object, String); auto name = data.Pop(); POP_VALOBJ(valobj); - data.Push((uint64_t)valobj->GetIndexOfChildWithName(name)); + auto index_or_err = valobj->GetIndexOfChildWithName(name); + if (!index_or_err) { + data.Push(ValueObjectConstResult::Create( + nullptr, Status::FromError(index_or_err.takeError()))); + break; + } + data.Push((uint64_t)*index_or_err); break; } case sel_get_type: { diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp index 7aa0670190b25..fb23efedbde3d 100644 --- a/lldb/source/DataFormatters/TypeSynthetic.cpp +++ b/lldb/source/DataFormatters/TypeSynthetic.cpp @@ -49,7 +49,7 @@ bool TypeFilterImpl::SetExpressionPathAtIndex(size_t i, return true; } -size_t +llvm::Expected TypeFilterImpl::FrontEnd::GetIndexOfChildWithName(ConstString name) { const char *name_cstr = name.GetCString(); if (name_cstr) { @@ -218,10 +218,11 @@ bool ScriptedSyntheticChildren::FrontEnd::MightHaveChildren() { return m_interpreter->MightHaveChildrenSynthProviderInstance(m_wrapper_sp); } -size_t ScriptedSyntheticChildren::FrontEnd::GetIndexOfChildWithName( - ConstString name) { +llvm::Expected +ScriptedSyntheticChildren::FrontEnd::GetIndexOfChildWithName(ConstString name) { if (!m_wrapper_sp || m_interpreter == nullptr) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return m_interpreter->GetIndexOfChildWithName(m_wrapper_sp, name.GetCString()); } diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp index 162b075ec87d2..2ddd6e9b006fb 100644 --- a/lldb/source/DataFormatters/VectorType.cpp +++ b/lldb/source/DataFormatters/VectorType.cpp @@ -269,11 +269,12 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd { return lldb::ChildCacheState::eRefetch; } - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp index 6a22501c98aab..6731c96341ac8 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp @@ -144,9 +144,10 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd { return lldb::ChildCacheState::eRefetch; } - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (!m_block_struct_type.IsValid()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); const bool omit_empty_base_classes = false; return m_block_struct_type.GetIndexOfChildWithName(name.AsCString(), @@ -172,8 +173,15 @@ bool lldb_private::formatters::BlockPointerSummaryProvider( static const ConstString s_FuncPtr_name("__FuncPtr"); - lldb::ValueObjectSP child_sp = synthetic_children->GetChildAtIndex( - synthetic_children->GetIndexOfChildWithName(s_FuncPtr_name)); + auto index_or_err = + synthetic_children->GetIndexOfChildWithName(s_FuncPtr_name); + + if (!index_or_err) { + return false; + } + + lldb::ValueObjectSP child_sp = + synthetic_children->GetChildAtIndex(*index_or_err); if (!child_sp) { return false; diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp index 76a10d2393782..0d68b1f4eda1b 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp @@ -199,10 +199,12 @@ lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( +llvm::Expected +StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { if (!m_resume_ptr_sp || !m_destroy_ptr_sp) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); if (name == ConstString("resume")) return 0; @@ -211,7 +213,8 @@ size_t StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( if (name == ConstString("promise_ptr") && m_promise_ptr_sp) return 2; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h index c33c82bd2fc45..fd9445d46e6a0 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h +++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h @@ -40,7 +40,7 @@ class StdlibCoroutineHandleSyntheticFrontEnd lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: lldb::ValueObjectSP m_resume_ptr_sp; diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp index 03671c3efed6f..49c51835d1ed6 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp @@ -28,7 +28,7 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd { GenericBitsetFrontEnd(ValueObject &valobj, StdLib stdlib); - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { return formatters::ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp index b224d3e859c84..c6b3c3344ef3a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp @@ -36,7 +36,7 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd { GenericOptionalFrontend(ValueObject &valobj, StdLib stdlib); - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (name == "$$dereference$$") return 0; return formatters::ExtractIndexFromString(name.GetCString()); diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index 63620c6bf0ddd..04487f86719ba 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -309,13 +309,15 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (name == "__ptr_") return 0; if (name == "$$dereference$$") return 1; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: @@ -407,7 +409,8 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (name == "pointer") return 0; @@ -415,7 +418,8 @@ size_t lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd:: return 1; if (name == "$$dereference$$") return 2; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } bool lldb_private::formatters::LibcxxContainerSummaryProvider( @@ -456,7 +460,7 @@ ExtractLibcxxStringInfo(ValueObject &valobj) { if (!l) return {}; - StringLayout layout = l->GetIndexOfChildWithName("__data_") == 0 + StringLayout layout = l->GetIndexOfChildWithName("__data_").get() == 0 ? StringLayout::DSC : StringLayout::CSD; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h index 21fbb361eb934..56501302d116f 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h @@ -102,7 +102,7 @@ class LibcxxSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; ~LibcxxSharedPtrSyntheticFrontEnd() override; @@ -120,7 +120,7 @@ class LibcxxUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; ~LibcxxUniquePtrSyntheticFrontEnd() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp index 3104f33ee80b3..87962d4f33cbd 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp @@ -96,7 +96,7 @@ class LibcxxStdAtomicSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ValueObject *m_real_child = nullptr; @@ -130,9 +130,14 @@ lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::GetChildAtIndex( return nullptr; } -size_t lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { - return name == "Value" ? 0 : UINT32_MAX; + if (name == "Value") { + return 0; + } + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp index ffc894256626c..83a7d23f0de9a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp @@ -32,7 +32,7 @@ class LibcxxInitializerListSyntheticFrontEnd lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ValueObject *m_start = nullptr; @@ -100,7 +100,8 @@ lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) return UINT32_MAX; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp index ae1ad2bfe7200..a85ea9c829051 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp @@ -106,7 +106,7 @@ class ListIterator { class AbstractListFrontEnd : public SyntheticChildrenFrontEnd { public: - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { return ExtractIndexFromString(name.GetCString()); } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp index d75f25f49fdb4..7fee02babe52e 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp @@ -197,7 +197,7 @@ class LibcxxStdMapSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: llvm::Expected CalculateNumChildrenForOldCompressedPairLayout(); @@ -235,7 +235,7 @@ class LibCxxMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; ~LibCxxMapIteratorSyntheticFrontEnd() override = default; @@ -393,7 +393,7 @@ lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd:: +llvm::Expected lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { return ExtractIndexFromString(name.GetCString()); } @@ -488,10 +488,12 @@ lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::GetChildAtIndex( return m_pair_sp->GetChildAtIndex(idx); } -size_t lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_pair_sp) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return m_pair_sp->GetIndexOfChildWithName(name); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp index 23fcff5e88bb2..4a9396c312b45 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp @@ -41,7 +41,7 @@ class LibcxxStdProxyArraySyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: /// A non-owning pointer to the array's __vp_. @@ -173,7 +173,8 @@ lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd::Update() { return ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_base) return std::numeric_limits::max(); diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp index 8f1e35b3bede9..64292cb197db2 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp @@ -20,9 +20,12 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd { Update(); } - size_t GetIndexOfChildWithName(ConstString name) override { - return m_container_sp ? m_container_sp->GetIndexOfChildWithName(name) - : UINT32_MAX; + llvm::Expected GetIndexOfChildWithName(ConstString name) override { + if (m_container_sp) { + return m_container_sp->GetIndexOfChildWithName(name); + } + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp index e8ab37a022fbc..72ccc84fabbe7 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp @@ -40,7 +40,7 @@ class LibcxxStdRangesRefViewSyntheticFrontEnd lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { // We only have a single child return 0; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp index dba80db3906f9..1e7d9fce4f2b0 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp @@ -62,7 +62,7 @@ class LibcxxStdSliceArraySyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: /// A non-owning pointer to slice_array.__vp_. @@ -144,10 +144,12 @@ lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd::Update() { return ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) - return std::numeric_limits::max(); + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp index acda41024cf03..9360689475e64 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp @@ -55,7 +55,7 @@ class LibcxxStdSpanSyntheticFrontEnd : public SyntheticChildrenFrontEnd { // from the only other place it can be: the template argument. lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ValueObject *m_start = nullptr; ///< First element of span. Held, not owned. @@ -127,10 +127,11 @@ lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eReuse; } -size_t lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd:: - GetIndexOfChildWithName(ConstString name) { +llvm::Expected lldb_private::formatters:: + LibcxxStdSpanSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (!m_start) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp index 263ca8349b891..c94d05a739c79 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp @@ -20,7 +20,7 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd { Update(); } - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { return formatters::ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp index 395ecc489a17e..983c743e37eb0 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp @@ -40,7 +40,7 @@ class LibcxxStdUnorderedMapSyntheticFrontEnd lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: CompilerType GetNodeType(); @@ -68,7 +68,7 @@ class LibCxxUnorderedMapIteratorSyntheticFrontEnd lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: lldb::ValueObjectSP m_pair_sp; ///< ValueObject for the key/value pair @@ -291,7 +291,8 @@ lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { return ExtractIndexFromString(name.GetCString()); } @@ -398,13 +399,15 @@ lldb::ValueObjectSP lldb_private::formatters:: return lldb::ValueObjectSP(); } -size_t lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (name == "first") return 0; if (name == "second") return 1; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index 53ad3d91a62a4..e6fbf56e1c46e 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -30,7 +30,7 @@ class LibcxxStdValarraySyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: /// A non-owning pointer to valarray's __begin_ member. @@ -123,10 +123,12 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::Update() { return ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start || !m_finish) - return std::numeric_limits::max(); + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp index 701946d44cb40..0bd9b905e21bb 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp @@ -202,8 +202,13 @@ class VariantFrontEnd : public SyntheticChildrenFrontEnd { Update(); } - size_t GetIndexOfChildWithName(ConstString name) override { - return formatters::ExtractIndexFromString(name.GetCString()); + llvm::Expected GetIndexOfChildWithName(ConstString name) override { + size_t index = formatters::ExtractIndexFromString(name.GetCString()); + if (index == UINT32_MAX) { + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); + } + return index; } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index ce2261b6f03c3..ea27ca5bcf5a7 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -33,7 +33,7 @@ class LibcxxStdVectorSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ValueObject *m_start = nullptr; @@ -52,7 +52,7 @@ class LibcxxVectorBoolSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: CompilerType m_bool_type; @@ -163,7 +163,8 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start || !m_finish) return UINT32_MAX; @@ -259,14 +260,17 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::Update() { return lldb::ChildCacheState::eRefetch; } -size_t lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_count || !m_base_data_address) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp index a97264f007076..e4c0ad2db0fdd 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp @@ -49,7 +49,7 @@ class LibstdcppMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ExecutionContextRef m_exe_ctx_ref; @@ -68,7 +68,8 @@ class LibStdcppSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected 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 +LibstdcppMapIteratorSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { if (name == "first") return 0; if (name == "second") return 1; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * @@ -226,11 +229,12 @@ VectorIteratorSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) { return lldb::ValueObjectSP(); } -size_t VectorIteratorSyntheticFrontEnd::GetIndexOfChildWithName( - ConstString name) { +llvm::Expected +VectorIteratorSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (name == "item") return 0; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%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 +LibStdcppSharedPtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (name == "pointer") return 0; if (name == "object" || name == "$$dereference$$") return 1; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp index 68133b202a0c8..2077256a0d4c0 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp @@ -32,7 +32,7 @@ class LibStdcppTupleSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: // The lifetime of a ValueObject and all its derivative ValueObjects @@ -96,8 +96,8 @@ LibStdcppTupleSyntheticFrontEnd::CalculateNumChildren() { return m_members.size(); } -size_t LibStdcppTupleSyntheticFrontEnd::GetIndexOfChildWithName( - ConstString name) { +llvm::Expected +LibStdcppTupleSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { return ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp index 722203f17e382..21af394417715 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp @@ -32,7 +32,7 @@ class LibStdcppUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; bool GetSummary(Stream &stream, const TypeSummaryOptions &options); @@ -139,15 +139,16 @@ LibStdcppUniquePtrSyntheticFrontEnd::CalculateNumChildren() { return 1; } -size_t LibStdcppUniquePtrSyntheticFrontEnd::GetIndexOfChildWithName( - ConstString name) { +llvm::Expected +LibStdcppUniquePtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (name == "ptr" || name == "pointer") return 0; if (name == "del" || name == "deleter") return 1; if (name == "obj" || name == "object" || name == "$$dereference$$") return 2; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } bool LibStdcppUniquePtrSyntheticFrontEnd::GetSummary( diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp index 1d79edbede5d6..1898b30a93326 100644 --- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp +++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp @@ -1049,8 +1049,9 @@ class ObjCClassSyntheticChildrenFrontEnd : public SyntheticChildrenFrontEnd { bool MightHaveChildren() override { return false; } - size_t GetIndexOfChildWithName(ConstString name) override { - return UINT32_MAX; + llvm::Expected GetIndexOfChildWithName(ConstString name) override { + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } }; diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp index 7054dd8ffa952..958bcb96c48bd 100644 --- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp @@ -56,7 +56,7 @@ class NSArrayMSyntheticFrontEndBase : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override = 0; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; protected: virtual lldb::addr_t GetDataAddress() = 0; @@ -218,7 +218,7 @@ class GenericNSArrayISyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ExecutionContextRef m_exe_ctx_ref; @@ -306,7 +306,7 @@ class NSArray0SyntheticFrontEnd : public SyntheticChildrenFrontEnd { bool MightHaveChildren() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; }; class NSArray1SyntheticFrontEnd : public SyntheticChildrenFrontEnd { @@ -321,7 +321,7 @@ class NSArray1SyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; }; } // namespace formatters } // namespace lldb_private @@ -526,9 +526,8 @@ lldb_private::formatters::GenericNSArrayMSyntheticFrontEnd::Update() { : lldb::ChildCacheState::eRefetch; } -size_t -lldb_private::formatters::NSArrayMSyntheticFrontEndBase::GetIndexOfChildWithName( - ConstString name) { +llvm::Expected lldb_private::formatters::NSArrayMSyntheticFrontEndBase:: + GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) @@ -612,9 +611,9 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd:: } template -size_t -lldb_private::formatters::GenericNSArrayISyntheticFrontEnd:: - GetIndexOfChildWithName(ConstString name) { +llvm::Expected +lldb_private::formatters::GenericNSArrayISyntheticFrontEnd< + D32, D64, Inline>::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) @@ -695,7 +694,7 @@ lldb_private::formatters::NSArray0SyntheticFrontEnd::NSArray0SyntheticFrontEnd( lldb::ValueObjectSP valobj_sp) : SyntheticChildrenFrontEnd(*valobj_sp) {} -size_t +llvm::Expected lldb_private::formatters::NSArray0SyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { return UINT32_MAX; @@ -725,7 +724,7 @@ lldb_private::formatters::NSArray1SyntheticFrontEnd::NSArray1SyntheticFrontEnd( lldb::ValueObjectSP valobj_sp) : SyntheticChildrenFrontEnd(*valobj_sp.get()) {} -size_t +llvm::Expected lldb_private::formatters::NSArray1SyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { static const ConstString g_zero("[0]"); diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp index 008e8eb569f01..7bf7c168a94c0 100644 --- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp @@ -109,7 +109,7 @@ class NSDictionaryISyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: struct DataDescriptor_32 { @@ -148,7 +148,7 @@ class NSConstantDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ExecutionContextRef m_exe_ctx_ref; @@ -178,7 +178,7 @@ class NSCFDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: struct DictionaryItemDescriptor { @@ -209,7 +209,7 @@ class NSDictionary1SyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: ValueObjectSP m_pair; @@ -228,7 +228,7 @@ class GenericNSDictionaryMSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: struct DictionaryItemDescriptor { @@ -259,8 +259,8 @@ namespace Foundation1100 { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; - + llvm::Expected GetIndexOfChildWithName(ConstString name) override; + private: struct DataDescriptor_32 { uint32_t _used : 26; @@ -585,12 +585,13 @@ lldb_private::formatters::NSDictionaryISyntheticFrontEnd:: m_data_64 = nullptr; } -size_t lldb_private::formatters::NSDictionaryISyntheticFrontEnd:: - GetIndexOfChildWithName(ConstString name) { +llvm::Expected lldb_private::formatters:: + NSDictionaryISyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } @@ -718,12 +719,13 @@ lldb_private::formatters::NSCFDictionarySyntheticFrontEnd:: : SyntheticChildrenFrontEnd(*valobj_sp), m_exe_ctx_ref(), m_hashtable(), m_pair_type() {} -size_t lldb_private::formatters::NSCFDictionarySyntheticFrontEnd:: - GetIndexOfChildWithName(ConstString name) { +llvm::Expected lldb_private::formatters:: + NSCFDictionarySyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); const uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } @@ -849,12 +851,14 @@ lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: NSConstantDictionarySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp) : SyntheticChildrenFrontEnd(*valobj_sp) {} -size_t lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: +llvm::Expected +lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } @@ -961,10 +965,13 @@ lldb_private::formatters::NSDictionary1SyntheticFrontEnd:: NSDictionary1SyntheticFrontEnd(lldb::ValueObjectSP valobj_sp) : SyntheticChildrenFrontEnd(*valobj_sp.get()), m_pair(nullptr) {} -size_t lldb_private::formatters::NSDictionary1SyntheticFrontEnd:: - GetIndexOfChildWithName(ConstString name) { +llvm::Expected lldb_private::formatters:: + NSDictionary1SyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { static const ConstString g_zero("[0]"); - return name == g_zero ? 0 : UINT32_MAX; + if (name == g_zero) + return 0; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } llvm::Expected lldb_private::formatters:: @@ -1045,12 +1052,14 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< } template -size_t lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< +llvm::Expected +lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< D32, D64>::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } @@ -1202,13 +1211,13 @@ lldb_private::formatters::Foundation1100:: m_data_64 = nullptr; } -size_t -lldb_private::formatters::Foundation1100:: - NSDictionaryMSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { +llvm::Expected lldb_private::formatters::Foundation1100:: + NSDictionaryMSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSError.cpp b/lldb/source/Plugins/Language/ObjC/NSError.cpp index 5557daa2bf1b2..976a92aca0dd7 100644 --- a/lldb/source/Plugins/Language/ObjC/NSError.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSError.cpp @@ -165,11 +165,12 @@ class NSErrorSyntheticFrontEnd : public SyntheticChildrenFrontEnd { return lldb::ChildCacheState::eRefetch; } - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { static ConstString g_userInfo("_userInfo"); if (name == g_userInfo) return 0; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } private: diff --git a/lldb/source/Plugins/Language/ObjC/NSException.cpp b/lldb/source/Plugins/Language/ObjC/NSException.cpp index 67f3f1779e147..372812c1e0486 100644 --- a/lldb/source/Plugins/Language/ObjC/NSException.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSException.cpp @@ -148,7 +148,7 @@ class NSExceptionSyntheticFrontEnd : public SyntheticChildrenFrontEnd { : lldb::ChildCacheState::eRefetch; } - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { // NSException has 4 members: // NSString *name; // NSString *reason; @@ -162,7 +162,8 @@ class NSExceptionSyntheticFrontEnd : public SyntheticChildrenFrontEnd { if (name == g_reason) return 1; if (name == g_userInfo) return 2; if (name == g_reserved) return 3; - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); } private: diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp index e29f625b405b0..af898aeaab31f 100644 --- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp @@ -126,11 +126,12 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd { bool MightHaveChildren() override { return m_impl.m_mode != Mode::Invalid; } - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp index 55069495676e5..fe45bb7314a7d 100644 --- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp @@ -52,7 +52,7 @@ class NSSetISyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: struct DataDescriptor_32 { @@ -88,7 +88,7 @@ class NSCFSetSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: struct SetItemDescriptor { @@ -119,7 +119,7 @@ class GenericNSSetMSyntheticFrontEnd : public SyntheticChildrenFrontEnd { lldb::ChildCacheState Update() override; - size_t GetIndexOfChildWithName(ConstString name) override; + llvm::Expected GetIndexOfChildWithName(ConstString name) override; private: @@ -386,13 +386,14 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::~NSSetISyntheticFrontEnd() { m_data_64 = nullptr; } -size_t +llvm::Expected lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } @@ -519,13 +520,14 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::NSCFSetSyntheticFrontEnd( : SyntheticChildrenFrontEnd(*valobj_sp), m_exe_ctx_ref(), m_hashtable(), m_pair_type() {} -size_t +llvm::Expected lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { const char *item_name = name.GetCString(); const uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } @@ -654,14 +656,13 @@ lldb_private::formatters::GenericNSSetMSyntheticFrontEnd:: } template -size_t -lldb_private::formatters:: - GenericNSSetMSyntheticFrontEnd::GetIndexOfChildWithName( - ConstString name) { +llvm::Expected lldb_private::formatters::GenericNSSetMSyntheticFrontEnd< + D32, D64>::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index 553ee7e80b359..0b0897a4ba38c 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -2037,19 +2037,22 @@ lldb::ValueObjectSP ScriptInterpreterPythonImpl::GetChildAtIndex( return ret_val; } -int ScriptInterpreterPythonImpl::GetIndexOfChildWithName( +llvm::Expected ScriptInterpreterPythonImpl::GetIndexOfChildWithName( const StructuredData::ObjectSP &implementor_sp, const char *child_name) { if (!implementor_sp) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + child_name); StructuredData::Generic *generic = implementor_sp->GetAsGeneric(); if (!generic) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + child_name); auto *implementor = static_cast(generic->GetValue()); if (!implementor) - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + child_name); - int ret_val = UINT32_MAX; + int ret_val = INT32_MAX; { Locker py_lock(this, @@ -2058,6 +2061,9 @@ int ScriptInterpreterPythonImpl::GetIndexOfChildWithName( child_name); } + if (ret_val == INT32_MAX) + return llvm::createStringError("Cannot find index of child '%s'", + child_name); return ret_val; } diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h index 0f2902813397a..5d776080be8f4 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h @@ -128,8 +128,9 @@ class ScriptInterpreterPythonImpl : public ScriptInterpreterPython { GetChildAtIndex(const StructuredData::ObjectSP &implementor, uint32_t idx) override; - int GetIndexOfChildWithName(const StructuredData::ObjectSP &implementor, - const char *child_name) override; + llvm::Expected + GetIndexOfChildWithName(const StructuredData::ObjectSP &implementor, + const char *child_name) override; bool UpdateSynthProviderInstance( const StructuredData::ObjectSP &implementor) override; diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp index ed6297cc6f3e0..19f4dfbfcc3f7 100644 --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp @@ -6969,7 +6969,7 @@ size_t TypeSystemClang::GetIndexOfChildMemberWithName( // doesn't descend into the children, but only looks one level deep and name // matches can include base class names. -uint32_t +llvm::Expected TypeSystemClang::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, llvm::StringRef name, bool omit_empty_base_classes) { diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h index 442f88a5b79ae..93933846d114d 100644 --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h @@ -900,9 +900,10 @@ class TypeSystemClang : public TypeSystem { // Lookup a child given a name. This function will match base class names and // member member names in "clang_type" only, not descendants. - uint32_t GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, - llvm::StringRef name, - bool omit_empty_base_classes) override; + llvm::Expected + GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, + llvm::StringRef name, + bool omit_empty_base_classes) override; // Lookup a child member given a name. This function will match member names // only and will descend into "clang_type" children in search for the first diff --git a/lldb/source/Symbol/CompilerType.cpp b/lldb/source/Symbol/CompilerType.cpp index 8e89d006d08d3..07cb920585eb2 100644 --- a/lldb/source/Symbol/CompilerType.cpp +++ b/lldb/source/Symbol/CompilerType.cpp @@ -1023,7 +1023,7 @@ bool CompilerType::IsMeaninglessWithoutDynamicResolution() const { // doesn't descend into the children, but only looks one level deep and name // matches can include base class names. -uint32_t +llvm::Expected CompilerType::GetIndexOfChildWithName(llvm::StringRef name, bool omit_empty_base_classes) const { if (IsValid() && !name.empty()) { @@ -1031,7 +1031,8 @@ CompilerType::GetIndexOfChildWithName(llvm::StringRef name, return type_system_sp->GetIndexOfChildWithName(m_type, name, omit_empty_base_classes); } - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.str().c_str()); } // Dumping types diff --git a/lldb/source/ValueObject/ValueObject.cpp b/lldb/source/ValueObject/ValueObject.cpp index 8741cb7343166..17559368ee6bc 100644 --- a/lldb/source/ValueObject/ValueObject.cpp +++ b/lldb/source/ValueObject/ValueObject.cpp @@ -403,7 +403,8 @@ ValueObject::GetChildAtNamePath(llvm::ArrayRef names) { return root; } -size_t ValueObject::GetIndexOfChildWithName(llvm::StringRef name) { +llvm::Expected +ValueObject::GetIndexOfChildWithName(llvm::StringRef name) { bool omit_empty_base_classes = true; return GetCompilerType().GetIndexOfChildWithName(name, omit_empty_base_classes); diff --git a/lldb/source/ValueObject/ValueObjectRegister.cpp b/lldb/source/ValueObject/ValueObjectRegister.cpp index a56d3160d9ae2..feeb5595005cd 100644 --- a/lldb/source/ValueObject/ValueObjectRegister.cpp +++ b/lldb/source/ValueObject/ValueObjectRegister.cpp @@ -139,13 +139,15 @@ ValueObjectRegisterSet::GetChildMemberWithName(llvm::StringRef name, return ValueObjectSP(); } -size_t ValueObjectRegisterSet::GetIndexOfChildWithName(llvm::StringRef name) { +llvm::Expected +ValueObjectRegisterSet::GetIndexOfChildWithName(llvm::StringRef name) { if (m_reg_ctx_sp && m_reg_set) { const RegisterInfo *reg_info = m_reg_ctx_sp->GetRegisterInfoByName(name); if (reg_info != nullptr) return reg_info->kinds[eRegisterKindLLDB]; } - return UINT32_MAX; + return llvm::createStringError("Cannot find index of child '%s'", + name.str().c_str()); } #pragma mark - diff --git a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp index ae2b9bebbb12d..6f3621c8778cf 100644 --- a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp @@ -39,7 +39,7 @@ class DummySyntheticFrontEnd : public SyntheticChildrenFrontEnd { return m_backend.GetChildAtIndex(idx); } - size_t GetIndexOfChildWithName(ConstString name) override { + llvm::Expected GetIndexOfChildWithName(ConstString name) override { return m_backend.GetIndexOfChildWithName(name); } @@ -319,40 +319,41 @@ ValueObjectSynthetic::GetChildMemberWithName(llvm::StringRef name, bool can_create) { UpdateValueIfNeeded(); - uint32_t index = GetIndexOfChildWithName(name); + auto index_or_err = GetIndexOfChildWithName(name); - if (index == UINT32_MAX) + if (!index_or_err) return lldb::ValueObjectSP(); - return GetChildAtIndex(index, can_create); + return GetChildAtIndex(*index_or_err, can_create); } -size_t ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { +llvm::Expected +ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { UpdateValueIfNeeded(); ConstString name(name_ref); - uint32_t found_index = UINT32_MAX; - bool did_find; + std::optional found_index = std::nullopt; { std::lock_guard guard(m_child_mutex); auto name_to_index = m_name_toindex.find(name.GetCString()); - did_find = name_to_index != m_name_toindex.end(); - if (did_find) + if (name_to_index != m_name_toindex.end()) found_index = name_to_index->second; } - if (!did_find && m_synth_filter_up != nullptr) { - uint32_t index = m_synth_filter_up->GetIndexOfChildWithName(name); - if (index == UINT32_MAX) - return index; + if (!found_index.has_value() && m_synth_filter_up != nullptr) { + auto index_or_err = m_synth_filter_up->GetIndexOfChildWithName(name); + if (!index_or_err) + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); std::lock_guard guard(m_child_mutex); - m_name_toindex[name.GetCString()] = index; - return index; - } else if (!did_find && m_synth_filter_up == nullptr) - return UINT32_MAX; + m_name_toindex[name.GetCString()] = *index_or_err; + return *index_or_err; + } else if (!found_index.has_value() && m_synth_filter_up == nullptr) + return llvm::createStringError("Cannot find index of child '%s'", + name.AsCString()); else /*if (iter != m_name_toindex.end())*/ - return found_index; + return found_index.value(); } bool ValueObjectSynthetic::IsInScope() { return m_parent->IsInScope(); } From db12ff1073e1a336456bb002100b757eb149f144 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Tue, 22 Apr 2025 16:43:20 +0100 Subject: [PATCH 02/17] fixup! [lldb] Upgrade GetIndexOfChildWithName to use llvm::Expected --- lldb/include/lldb/API/SBValue.h | 2 -- .../lldb/DataFormatters/TypeSynthetic.h | 6 ++-- .../lldb/Interpreter/ScriptInterpreter.h | 5 +-- lldb/source/API/SBValue.cpp | 8 ++--- .../DataFormatters/FormatterBytecode.cpp | 7 ++-- lldb/source/DataFormatters/TypeSynthetic.cpp | 5 +-- lldb/source/DataFormatters/VectorType.cpp | 6 ++-- .../Language/CPlusPlus/BlockPointer.cpp | 7 ++-- .../Plugins/Language/CPlusPlus/Coroutines.cpp | 14 +++++--- .../Plugins/Language/CPlusPlus/LibCxx.cpp | 22 ++++++++---- .../Language/CPlusPlus/LibCxxAtomic.cpp | 9 ++--- .../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 7 ++-- .../Language/CPlusPlus/LibCxxProxyArray.cpp | 5 ++- .../Language/CPlusPlus/LibCxxQueue.cpp | 6 ++-- .../Language/CPlusPlus/LibCxxSliceArray.cpp | 6 ++-- .../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 6 ++-- .../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 6 ++-- .../Language/CPlusPlus/LibCxxValarray.cpp | 6 ++-- .../Language/CPlusPlus/LibCxxVariant.cpp | 6 ++-- .../Language/CPlusPlus/LibCxxVector.cpp | 17 ++++++--- .../Plugins/Language/CPlusPlus/LibStdcpp.cpp | 18 ++++++---- .../CPlusPlus/LibStdcppUniquePointer.cpp | 6 ++-- lldb/source/Plugins/Language/ObjC/Cocoa.cpp | 6 ++-- .../Plugins/Language/ObjC/NSDictionary.cpp | 36 ++++++++++++------- lldb/source/Plugins/Language/ObjC/NSError.cpp | 6 ++-- .../Plugins/Language/ObjC/NSException.cpp | 6 ++-- .../Plugins/Language/ObjC/NSIndexPath.cpp | 6 ++-- lldb/source/Plugins/Language/ObjC/NSSet.cpp | 18 ++++++---- .../Python/ScriptInterpreterPython.cpp | 24 ++++++++----- lldb/source/Symbol/CompilerType.cpp | 3 +- .../ValueObject/ValueObjectRegister.cpp | 6 ++-- .../ValueObjectSyntheticFilter.cpp | 19 +++++----- 32 files changed, 199 insertions(+), 111 deletions(-) diff --git a/lldb/include/lldb/API/SBValue.h b/lldb/include/lldb/API/SBValue.h index 69c50ab038e5b..75d20a4378f09 100644 --- a/lldb/include/lldb/API/SBValue.h +++ b/lldb/include/lldb/API/SBValue.h @@ -13,8 +13,6 @@ #include "lldb/API/SBDefines.h" #include "lldb/API/SBType.h" -#include "lldb/Core/Value.h" - class ValueImpl; class ValueLocker; diff --git a/lldb/include/lldb/DataFormatters/TypeSynthetic.h b/lldb/include/lldb/DataFormatters/TypeSynthetic.h index a132c63a93b08..101a4fce20d05 100644 --- a/lldb/include/lldb/DataFormatters/TypeSynthetic.h +++ b/lldb/include/lldb/DataFormatters/TypeSynthetic.h @@ -118,8 +118,10 @@ class SyntheticValueProviderFrontEnd : public SyntheticChildrenFrontEnd { lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override { return nullptr; } llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::SyntheticValueProviderFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } lldb::ChildCacheState Update() override { diff --git a/lldb/include/lldb/Interpreter/ScriptInterpreter.h b/lldb/include/lldb/Interpreter/ScriptInterpreter.h index 5425e58f0d594..8033da04424df 100644 --- a/lldb/include/lldb/Interpreter/ScriptInterpreter.h +++ b/lldb/include/lldb/Interpreter/ScriptInterpreter.h @@ -371,8 +371,9 @@ class ScriptInterpreter : public PluginInterface { virtual llvm::Expected GetIndexOfChildWithName(const StructuredData::ObjectSP &implementor, const char *child_name) { - return llvm::createStringError("Cannot find index of child '%s'", - child_name); + return llvm::createStringError( + "'PluginInterface::ScriptInterpreter' cannot find index of child '%s'", + child_name); } virtual bool diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp index 7b23484023ab3..e5cdc8f311450 100644 --- a/lldb/source/API/SBValue.cpp +++ b/lldb/source/API/SBValue.cpp @@ -707,12 +707,10 @@ uint32_t SBValue::GetIndexOfChildWithName(const char *name) { ValueLocker locker; lldb::ValueObjectSP value_sp(GetSP(locker)); if (value_sp) { - auto idx_or_err = value_sp->GetIndexOfChildWithName(name); - if (!idx_or_err) { + if (auto idx_or_err = value_sp->GetIndexOfChildWithName(name)) + return *idx_or_err; + else llvm::consumeError(idx_or_err.takeError()); - return UINT32_MAX; - } - return *idx_or_err; } return UINT32_MAX; } diff --git a/lldb/source/DataFormatters/FormatterBytecode.cpp b/lldb/source/DataFormatters/FormatterBytecode.cpp index 5d65c3043427f..9e6170eb0c144 100644 --- a/lldb/source/DataFormatters/FormatterBytecode.cpp +++ b/lldb/source/DataFormatters/FormatterBytecode.cpp @@ -491,11 +491,8 @@ llvm::Error Interpret(std::vector &control, auto name = data.Pop(); POP_VALOBJ(valobj); auto index_or_err = valobj->GetIndexOfChildWithName(name); - if (!index_or_err) { - data.Push(ValueObjectConstResult::Create( - nullptr, Status::FromError(index_or_err.takeError()))); - break; - } + if (!index_or_err) + return index_or_err.takeError(); data.Push((uint64_t)*index_or_err); break; } diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp index fb23efedbde3d..c42be11667797 100644 --- a/lldb/source/DataFormatters/TypeSynthetic.cpp +++ b/lldb/source/DataFormatters/TypeSynthetic.cpp @@ -221,8 +221,9 @@ bool ScriptedSyntheticChildren::FrontEnd::MightHaveChildren() { llvm::Expected ScriptedSyntheticChildren::FrontEnd::GetIndexOfChildWithName(ConstString name) { if (!m_wrapper_sp || m_interpreter == nullptr) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'ScriptedSyntheticChildren::FrontEnd' cannot find index of child '%s'", + name.AsCString()); return m_interpreter->GetIndexOfChildWithName(m_wrapper_sp, name.GetCString()); } diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp index 2ddd6e9b006fb..2b8d53ae2e28c 100644 --- a/lldb/source/DataFormatters/VectorType.cpp +++ b/lldb/source/DataFormatters/VectorType.cpp @@ -273,8 +273,10 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::VectorTypeSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp index 6731c96341ac8..bfc2263f814b2 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp @@ -146,8 +146,10 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (!m_block_struct_type.IsValid()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontend::BlockPointerSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); const bool omit_empty_base_classes = false; return m_block_struct_type.GetIndexOfChildWithName(name.AsCString(), @@ -177,6 +179,7 @@ bool lldb_private::formatters::BlockPointerSummaryProvider( synthetic_children->GetIndexOfChildWithName(s_FuncPtr_name); if (!index_or_err) { + LLDB_LOG_ERROR(GetLog(LLDBLog::Types), index_or_err.takeError(), "{0}"); return false; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp index 0d68b1f4eda1b..f49d6cfdb2a70 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp @@ -203,8 +203,12 @@ llvm::Expected StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { if (!m_resume_ptr_sp || !m_destroy_ptr_sp) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontend::StdlibCoroutineHandleSyntheticFrontEnd' " + "cannot find index of child '%s'. (m_resume_ptr_sp='%p', " + "m_destroy_ptr_sp='%p')", + name.AsCString(), static_cast(m_resume_ptr_sp.get()), + static_cast(m_destroy_ptr_sp.get())); if (name == ConstString("resume")) return 0; @@ -213,8 +217,10 @@ StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( if (name == ConstString("promise_ptr") && m_promise_ptr_sp) return 2; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontend::StdlibCoroutineHandleSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index 04487f86719ba..faee67c6a4e4f 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -316,8 +316,10 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: return 0; if (name == "$$dereference$$") return 1; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxSharedPtrSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: @@ -418,8 +420,10 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd:: return 1; if (name == "$$dereference$$") return 2; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'ScriptedSyntheticChildren::LibcxxUniquePtrSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } bool lldb_private::formatters::LibcxxContainerSummaryProvider( @@ -460,9 +464,13 @@ ExtractLibcxxStringInfo(ValueObject &valobj) { if (!l) return {}; - StringLayout layout = l->GetIndexOfChildWithName("__data_").get() == 0 - ? StringLayout::DSC - : StringLayout::CSD; + auto index_or_err = l->GetIndexOfChildWithName("__data_"); + if (!index_or_err) + LLDB_LOG_ERROR(GetLog(LLDBLog::Types), index_or_err.takeError(), "{0}"); + return {}; + + StringLayout layout = + *index_or_err == 0 ? StringLayout::DSC : StringLayout::CSD; bool short_mode = false; // this means the string is in short-mode and the // data is stored inline diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp index 87962d4f33cbd..02510c9776a78 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp @@ -133,11 +133,12 @@ lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::GetChildAtIndex( llvm::Expected lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { - if (name == "Value") { + if (name == "Value") return 0; - } - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdAtomicSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp index 7fee02babe52e..a1617a752cd7d 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp @@ -492,8 +492,11 @@ llvm::Expected lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_pair_sp) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibCxxMapIteratorSyntheticFrontEnd' " + "cannot find index of child '%s'. Underlying pair is invalid: " + "m_pair_sp=%p", + name.AsCString(), static_cast(m_pair_sp.get())); return m_pair_sp->GetIndexOfChildWithName(name); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp index 4a9396c312b45..6a791c84d4337 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp @@ -177,7 +177,10 @@ llvm::Expected lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_base) - return std::numeric_limits::max(); + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdProxyArraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); return ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp index 64292cb197db2..48a4960ae024a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp @@ -21,10 +21,10 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd { } llvm::Expected GetIndexOfChildWithName(ConstString name) override { - if (m_container_sp) { + if (m_container_sp) return m_container_sp->GetIndexOfChildWithName(name); - } - return llvm::createStringError("Cannot find index of child '%s'", + return llvm::createStringError("'SyntheticChildrenFrontend::QueueFrontEnd' " + "cannot find index of child '%s'", name.AsCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp index 1e7d9fce4f2b0..d7fbfac2a4600 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp @@ -148,8 +148,10 @@ llvm::Expected lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdSliceArraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); return ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp index 9360689475e64..17c9613b92226 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp @@ -130,8 +130,10 @@ lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::Update() { llvm::Expected lldb_private::formatters:: LibcxxStdSpanSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (!m_start) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibcxxStdSpanSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp index 983c743e37eb0..3676c99b609e3 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp @@ -406,8 +406,10 @@ lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd:: return 0; if (name == "second") return 1; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibCxxUnorderedMapIteratorSyntheticFrontEnd'" + " cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index e6fbf56e1c46e..2d38e1810bf3f 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -127,8 +127,10 @@ llvm::Expected lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start || !m_finish) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibcxxStdValarraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); return ExtractIndexFromString(name.GetCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp index 0bd9b905e21bb..06358224e473e 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp @@ -205,8 +205,10 @@ class VariantFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) { - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::VariantFrontEnd' cannot find index of " + "child '%s'", + name.AsCString()); } return index; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index ea27ca5bcf5a7..7dd2ada074574 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -167,7 +167,10 @@ llvm::Expected lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start || !m_finish) - return UINT32_MAX; + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibcxxStdVectorSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return ExtractIndexFromString(name.GetCString()); } @@ -264,13 +267,17 @@ llvm::Expected lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_count || !m_base_data_address) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp index e4c0ad2db0fdd..e754938f94056 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp @@ -153,8 +153,10 @@ LibstdcppMapIteratorSyntheticFrontEnd::GetIndexOfChildWithName( return 0; if (name == "second") return 1; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibstdcppMapIteratorSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * @@ -233,8 +235,10 @@ llvm::Expected VectorIteratorSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (name == "item") return 0; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::VectorIteratorSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } bool lldb_private::formatters::LibStdcppStringSummaryProvider( @@ -419,8 +423,10 @@ LibStdcppSharedPtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { return 0; if (name == "object" || name == "$$dereference$$") return 1; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibStdcppSharedPtrSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp index 21af394417715..008edba227ac6 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp @@ -147,8 +147,10 @@ LibStdcppUniquePtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { return 1; if (name == "obj" || name == "object" || name == "$$dereference$$") return 2; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibStdcppUniquePtrSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } bool LibStdcppUniquePtrSyntheticFrontEnd::GetSummary( diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp index 1898b30a93326..18fb26781f8d3 100644 --- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp +++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp @@ -1050,8 +1050,10 @@ class ObjCClassSyntheticChildrenFrontEnd : public SyntheticChildrenFrontEnd { bool MightHaveChildren() override { return false; } llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ObjCClassSyntheticChildrenFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } }; diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp index 7bf7c168a94c0..d9d68327bb3dd 100644 --- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp @@ -590,8 +590,10 @@ llvm::Expected lldb_private::formatters:: const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSDictionaryISyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return idx; } @@ -724,8 +726,10 @@ llvm::Expected lldb_private::formatters:: const char *item_name = name.GetCString(); const uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSCFDictionarySyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return idx; } @@ -857,8 +861,10 @@ lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSConstantDictionarySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); return idx; } @@ -970,8 +976,10 @@ llvm::Expected lldb_private::formatters:: static const ConstString g_zero("[0]"); if (name == g_zero) return 0; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSDictionary1SyntheticFrontEnd' cannot find " + "index of child '%s'", + name.AsCString()); } llvm::Expected lldb_private::formatters:: @@ -1058,8 +1066,10 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::GenericNSDictionaryMSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); return idx; } @@ -1216,8 +1226,10 @@ llvm::Expected lldb_private::formatters::Foundation1100:: const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSDictionaryMSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSError.cpp b/lldb/source/Plugins/Language/ObjC/NSError.cpp index 976a92aca0dd7..37b9a2697c320 100644 --- a/lldb/source/Plugins/Language/ObjC/NSError.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSError.cpp @@ -169,8 +169,10 @@ class NSErrorSyntheticFrontEnd : public SyntheticChildrenFrontEnd { static ConstString g_userInfo("_userInfo"); if (name == g_userInfo) return 0; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSErrorSyntheticFrontEnd' cannot find " + "index of child '%s'", + name.AsCString()); } private: diff --git a/lldb/source/Plugins/Language/ObjC/NSException.cpp b/lldb/source/Plugins/Language/ObjC/NSException.cpp index 372812c1e0486..1f731ec529960 100644 --- a/lldb/source/Plugins/Language/ObjC/NSException.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSException.cpp @@ -162,8 +162,10 @@ class NSExceptionSyntheticFrontEnd : public SyntheticChildrenFrontEnd { if (name == g_reason) return 1; if (name == g_userInfo) return 2; if (name == g_reserved) return 3; - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSExceptionSyntheticFrontEnd' cannot find " + "index of child '%s'", + name.AsCString()); } private: diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp index af898aeaab31f..214c0762d42c3 100644 --- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp @@ -130,8 +130,10 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSIndexPathSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp index fe45bb7314a7d..5bdadb4ddbf3d 100644 --- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp @@ -392,8 +392,10 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName( const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSSetISyntheticFrontEnd' cannot find " + "index of child '%s'", + name.AsCString()); return idx; } @@ -526,8 +528,10 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName( const char *item_name = name.GetCString(); const uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::NSCFSetSyntheticFrontEnd' cannot find " + "index of child '%s'", + name.AsCString()); return idx; } @@ -661,8 +665,10 @@ llvm::Expected lldb_private::formatters::GenericNSSetMSyntheticFrontEnd< const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::GenericNSSetMSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index 0b0897a4ba38c..16225ad11a5d3 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -2040,17 +2040,23 @@ lldb::ValueObjectSP ScriptInterpreterPythonImpl::GetChildAtIndex( llvm::Expected ScriptInterpreterPythonImpl::GetIndexOfChildWithName( const StructuredData::ObjectSP &implementor_sp, const char *child_name) { if (!implementor_sp) - return llvm::createStringError("Cannot find index of child '%s'", - child_name); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " + "index of child '%s'", + child_name); StructuredData::Generic *generic = implementor_sp->GetAsGeneric(); if (!generic) - return llvm::createStringError("Cannot find index of child '%s'", - child_name); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " + "index of child '%s'", + child_name); auto *implementor = static_cast(generic->GetValue()); if (!implementor) - return llvm::createStringError("Cannot find index of child '%s'", - child_name); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " + "index of child '%s'", + child_name); int ret_val = INT32_MAX; @@ -2062,8 +2068,10 @@ llvm::Expected ScriptInterpreterPythonImpl::GetIndexOfChildWithName( } if (ret_val == INT32_MAX) - return llvm::createStringError("Cannot find index of child '%s'", - child_name); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " + "index of child '%s'", + child_name); return ret_val; } diff --git a/lldb/source/Symbol/CompilerType.cpp b/lldb/source/Symbol/CompilerType.cpp index 07cb920585eb2..2b47c3e95afab 100644 --- a/lldb/source/Symbol/CompilerType.cpp +++ b/lldb/source/Symbol/CompilerType.cpp @@ -1031,7 +1031,8 @@ CompilerType::GetIndexOfChildWithName(llvm::StringRef name, return type_system_sp->GetIndexOfChildWithName(m_type, name, omit_empty_base_classes); } - return llvm::createStringError("Cannot find index of child '%s'", + return llvm::createStringError("'SyntheticChildrenFrontEnd::CompilerType' " + "cannot find index of child '%s'", name.str().c_str()); } diff --git a/lldb/source/ValueObject/ValueObjectRegister.cpp b/lldb/source/ValueObject/ValueObjectRegister.cpp index feeb5595005cd..e91e9f5ef2b9c 100644 --- a/lldb/source/ValueObject/ValueObjectRegister.cpp +++ b/lldb/source/ValueObject/ValueObjectRegister.cpp @@ -146,8 +146,10 @@ ValueObjectRegisterSet::GetIndexOfChildWithName(llvm::StringRef name) { if (reg_info != nullptr) return reg_info->kinds[eRegisterKindLLDB]; } - return llvm::createStringError("Cannot find index of child '%s'", - name.str().c_str()); + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ValueObjectRegisterSet' cannot find index " + "of child '%s'", + name.str().c_str()); } #pragma mark - diff --git a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp index 6f3621c8778cf..82ac458c27001 100644 --- a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp @@ -321,8 +321,10 @@ ValueObjectSynthetic::GetChildMemberWithName(llvm::StringRef name, auto index_or_err = GetIndexOfChildWithName(name); - if (!index_or_err) + if (!index_or_err) { + llvm::consumeError(index_or_err.takeError()); return lldb::ValueObjectSP(); + } return GetChildAtIndex(*index_or_err, can_create); } @@ -341,19 +343,20 @@ ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { found_index = name_to_index->second; } - if (!found_index.has_value() && m_synth_filter_up != nullptr) { + if (!found_index && m_synth_filter_up != nullptr) { auto index_or_err = m_synth_filter_up->GetIndexOfChildWithName(name); if (!index_or_err) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + return index_or_err.takeError(); std::lock_guard guard(m_child_mutex); m_name_toindex[name.GetCString()] = *index_or_err; return *index_or_err; - } else if (!found_index.has_value() && m_synth_filter_up == nullptr) - return llvm::createStringError("Cannot find index of child '%s'", - name.AsCString()); + } else if (!found_index && m_synth_filter_up == nullptr) + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ValueObjectSynthetic' cannot find index " + "of child '%s'", + name.AsCString()); else /*if (iter != m_name_toindex.end())*/ - return found_index.value(); + return *found_index; } bool ValueObjectSynthetic::IsInScope() { return m_parent->IsInScope(); } From 4dda702e56f819e5d6bd431548110fe5cf377cc9 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Wed, 23 Apr 2025 15:04:45 +0100 Subject: [PATCH 03/17] fix tests --- .../DataFormatters/FormatterBytecode.cpp | 8 ++++---- lldb/source/DataFormatters/TypeSynthetic.cpp | 4 +++- lldb/source/DataFormatters/VectorType.cpp | 3 ++- .../Language/CPlusPlus/GenericBitset.cpp | 9 ++++++++- .../Language/CPlusPlus/GenericOptional.cpp | 9 ++++++++- .../Plugins/Language/CPlusPlus/LibCxx.cpp | 5 +++-- .../CPlusPlus/LibCxxInitializerList.cpp | 17 ++++++++++++++--- .../Plugins/Language/CPlusPlus/LibCxxList.cpp | 9 ++++++++- .../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 9 ++++++++- .../Language/CPlusPlus/LibCxxProxyArray.cpp | 9 ++++++++- .../Language/CPlusPlus/LibCxxSliceArray.cpp | 9 ++++++++- .../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 9 ++++++++- .../Plugins/Language/CPlusPlus/LibCxxTuple.cpp | 9 ++++++++- .../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 9 ++++++++- .../Language/CPlusPlus/LibCxxValarray.cpp | 9 ++++++++- .../Language/CPlusPlus/LibCxxVector.cpp | 13 +++++++++++-- .../Language/CPlusPlus/LibStdcppTuple.cpp | 10 +++++++++- lldb/source/Plugins/Language/ObjC/NSArray.cpp | 18 +++++++++++++----- .../Plugins/Language/ObjC/NSDictionary.cpp | 15 ++++++++++----- .../Plugins/Language/ObjC/NSIndexPath.cpp | 3 ++- lldb/source/Plugins/Language/ObjC/NSSet.cpp | 9 ++++++--- .../TypeSystem/Clang/TypeSystemClang.cpp | 4 +++- 22 files changed, 160 insertions(+), 39 deletions(-) diff --git a/lldb/source/DataFormatters/FormatterBytecode.cpp b/lldb/source/DataFormatters/FormatterBytecode.cpp index 9e6170eb0c144..714de74abcb3c 100644 --- a/lldb/source/DataFormatters/FormatterBytecode.cpp +++ b/lldb/source/DataFormatters/FormatterBytecode.cpp @@ -9,12 +9,12 @@ #include "FormatterBytecode.h" #include "lldb/Utility/LLDBLog.h" #include "lldb/ValueObject/ValueObject.h" +#include "lldb/ValueObject/ValueObjectConstResult.h" #include "llvm/ADT/StringExtras.h" #include "llvm/Support/DataExtractor.h" #include "llvm/Support/Format.h" #include "llvm/Support/FormatProviders.h" #include "llvm/Support/FormatVariadicDetails.h" -#include using namespace lldb; namespace lldb_private { @@ -490,10 +490,10 @@ llvm::Error Interpret(std::vector &control, TYPE_CHECK(Object, String); auto name = data.Pop(); POP_VALOBJ(valobj); - auto index_or_err = valobj->GetIndexOfChildWithName(name); - if (!index_or_err) + if (auto index_or_err = valobj->GetIndexOfChildWithName(name)) + data.Push((uint64_t)*index_or_err); + else return index_or_err.takeError(); - data.Push((uint64_t)*index_or_err); break; } case sel_get_type: { diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp index c42be11667797..ee7bca0fd7272 100644 --- a/lldb/source/DataFormatters/TypeSynthetic.cpp +++ b/lldb/source/DataFormatters/TypeSynthetic.cpp @@ -67,7 +67,9 @@ TypeFilterImpl::FrontEnd::GetIndexOfChildWithName(ConstString name) { } } } - return UINT32_MAX; + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::FrontEnd' cannot find index of child '%s'", + name.AsCString()); } std::string TypeFilterImpl::GetDescription() { diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp index 2b8d53ae2e28c..ccacc64149b17 100644 --- a/lldb/source/DataFormatters/VectorType.cpp +++ b/lldb/source/DataFormatters/VectorType.cpp @@ -272,7 +272,8 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::VectorTypeSyntheticFrontEnd' cannot " "find index of child '%s'", diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp index 49c51835d1ed6..b7b8733dfe1f0 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp @@ -29,7 +29,14 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd { GenericBitsetFrontEnd(ValueObject &valobj, StdLib stdlib); llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return formatters::ExtractIndexFromString(name.GetCString()); + size_t idx = formatters::ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::GenericBitsetFrontEnd' cannot find " + "index of child '%s'", + name.AsCString()); + } + return idx; } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp index c6b3c3344ef3a..6f49e09196b1c 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp @@ -39,7 +39,14 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (name == "$$dereference$$") return 0; - return formatters::ExtractIndexFromString(name.GetCString()); + size_t idx = formatters::ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::GenericOptionalFrontend' cannot find " + "index of child '%s'", + name.AsCString()); + } + return idx; } llvm::Expected CalculateNumChildren() override { diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index faee67c6a4e4f..93b4a382955df 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -465,9 +465,10 @@ ExtractLibcxxStringInfo(ValueObject &valobj) { return {}; auto index_or_err = l->GetIndexOfChildWithName("__data_"); - if (!index_or_err) + if (!index_or_err) { LLDB_LOG_ERROR(GetLog(LLDBLog::Types), index_or_err.takeError(), "{0}"); - return {}; + return {}; + } StringLayout layout = *index_or_err == 0 ? StringLayout::DSC : StringLayout::CSD; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp index 83a7d23f0de9a..7f59543ca9fe9 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp @@ -103,9 +103,20 @@ lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::Update() { llvm::Expected lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { - if (!m_start) - return UINT32_MAX; - return ExtractIndexFromString(name.GetCString()); + if (!m_start) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxInitializerListSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); + } + size_t idx = ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxInitializerListSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); + } + return idx; } lldb_private::SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp index a85ea9c829051..1fe6094f4c31f 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp @@ -107,7 +107,14 @@ class ListIterator { class AbstractListFrontEnd : public SyntheticChildrenFrontEnd { public: llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return ExtractIndexFromString(name.GetCString()); + size_t idx = ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::AbstractListFrontEnd' cannot find index " + "of child '%s'", + name.AsCString()); + } + return idx; } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp index a1617a752cd7d..c3e86528d86a3 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp @@ -395,7 +395,14 @@ lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::Update() { llvm::Expected lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { - return ExtractIndexFromString(name.GetCString()); + size_t idx = ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdMapSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); + } + return idx; } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp index 6a791c84d4337..c7515768a522c 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp @@ -181,7 +181,14 @@ lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd:: "'SyntheticChildrenFrontend::LibcxxStdProxyArraySyntheticFrontEnd' " "cannot find index of child '%s'", name.AsCString()); - return ExtractIndexFromString(name.GetCString()); + size_t idx = ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdProxyArraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); + } + return idx; } lldb_private::SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp index d7fbfac2a4600..9863a1ed8be8d 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp @@ -152,7 +152,14 @@ lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd:: "'SyntheticChildrenFrontend::LibcxxStdSliceArraySyntheticFrontEnd' " "cannot find index of child '%s'", name.AsCString()); - return ExtractIndexFromString(name.GetCString()); + size_t idx = ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdSliceArraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); + } + return idx; } lldb_private::SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp index 17c9613b92226..4364c0f4e0144 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp @@ -134,7 +134,14 @@ llvm::Expected lldb_private::formatters:: "'SyntheticChildrenFrontEnd::LibcxxStdSpanSyntheticFrontEnd' cannot " "find index of child '%s'", name.AsCString()); - return ExtractIndexFromString(name.GetCString()); + size_t idx = ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdSpanSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); + } + return idx; } lldb_private::SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp index c94d05a739c79..df94638ba21bd 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp @@ -21,7 +21,14 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd { } llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return formatters::ExtractIndexFromString(name.GetCString()); + size_t idx = formatters::ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::TupleFrontEnd' cannot find index of " + "child '%s'", + name.AsCString()); + } + return idx; } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp index 3676c99b609e3..3b0fbc6d8d0a5 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp @@ -294,7 +294,14 @@ lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::Update() { llvm::Expected lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { - return ExtractIndexFromString(name.GetCString()); + size_t idx = ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdUnorderedMapSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); + } + return idx; } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index 2d38e1810bf3f..a2ec7d0e37387 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -131,7 +131,14 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: "'SyntheticChildrenFrontEnd::LibcxxStdValarraySyntheticFrontEnd' " "cannot find index of child '%s'", name.AsCString()); - return ExtractIndexFromString(name.GetCString()); + size_t idx = ExtractIndexFromString(name.GetCString()); + if (idx == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontend::LibcxxStdValarraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); + } + return idx; } lldb_private::SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index 7dd2ada074574..493d9333422e5 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -171,7 +171,15 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: "'SyntheticChildrenFrontEnd::LibcxxStdVectorSyntheticFrontEnd' cannot " "find index of child '%s'", name.AsCString()); - return ExtractIndexFromString(name.GetCString()); + size_t index = formatters::ExtractIndexFromString(name.GetCString()); + if (index == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibcxxStdVectorSyntheticFrontEnd' cannot " + "find index of " + "child '%s'", + name.AsCString()); + } + return index; } lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: @@ -273,7 +281,8 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: name.AsCString()); const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " "find index of child '%s'", diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp index 2077256a0d4c0..2283c9f112549 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp @@ -98,7 +98,15 @@ LibStdcppTupleSyntheticFrontEnd::CalculateNumChildren() { llvm::Expected LibStdcppTupleSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { - return ExtractIndexFromString(name.GetCString()); + size_t index = formatters::ExtractIndexFromString(name.GetCString()); + if (index == UINT32_MAX) { + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::LibStdcppTupleSyntheticFrontEnd' cannot " + "find index of " + "child '%s'", + name.AsCString()); + } + return index; } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp index 958bcb96c48bd..f7db55f1bcb63 100644 --- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp @@ -529,9 +529,13 @@ lldb_private::formatters::GenericNSArrayMSyntheticFrontEnd::Update() { llvm::Expected lldb_private::formatters::NSArrayMSyntheticFrontEndBase:: GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); - uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + size_t idx = ExtractIndexFromString(item_name); + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) + return llvm::createStringError( + "'SyntheticChildrenFrontend::NSArrayMSyntheticFrontEndBase' cannot " + "find index of child '%s'", + name.AsCString()); return idx; } @@ -616,8 +620,12 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd< D32, D64, Inline>::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) - return UINT32_MAX; + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ObjCClassSyntheticChildrenFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp index d9d68327bb3dd..17e8b1dfff556 100644 --- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp @@ -589,7 +589,8 @@ llvm::Expected lldb_private::formatters:: NSDictionaryISyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSDictionaryISyntheticFrontEnd' cannot " "find index of child '%s'", @@ -725,7 +726,8 @@ llvm::Expected lldb_private::formatters:: NSCFDictionarySyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); const uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSCFDictionarySyntheticFrontEnd' cannot " "find index of child '%s'", @@ -860,7 +862,8 @@ lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSConstantDictionarySyntheticFrontEnd' " "cannot find index of child '%s'", @@ -1065,7 +1068,8 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< D32, D64>::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::GenericNSDictionaryMSyntheticFrontEnd' " "cannot find index of child '%s'", @@ -1225,7 +1229,8 @@ llvm::Expected lldb_private::formatters::Foundation1100:: NSDictionaryMSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSDictionaryMSyntheticFrontEnd' cannot " "find index of child '%s'", diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp index 214c0762d42c3..6c9485e88fbcf 100644 --- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp @@ -129,7 +129,8 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSIndexPathSyntheticFrontEnd' cannot " "find index of child '%s'", diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp index 5bdadb4ddbf3d..7f1757250d26c 100644 --- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp @@ -391,7 +391,8 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSSetISyntheticFrontEnd' cannot find " "index of child '%s'", @@ -527,7 +528,8 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { const char *item_name = name.GetCString(); const uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSCFSetSyntheticFrontEnd' cannot find " "index of child '%s'", @@ -664,7 +666,8 @@ llvm::Expected lldb_private::formatters::GenericNSSetMSyntheticFrontEnd< D32, D64>::GetIndexOfChildWithName(ConstString name) { const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); - if (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors()) + if (idx == UINT32_MAX || + (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::GenericNSSetMSyntheticFrontEnd' cannot " "find index of child '%s'", diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp index 19f4dfbfcc3f7..fe1851fabf654 100644 --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp @@ -7159,7 +7159,9 @@ TypeSystemClang::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, break; } } - return UINT32_MAX; + return llvm::createStringError("'SyntheticChildrenFrontEnd::TypeSystemClang' " + "cannot find index of child '%s'", + name.str().c_str()); } CompilerType From 320301d3d6f596657690521fa792658818ce732c Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Wed, 23 Apr 2025 19:27:55 +0100 Subject: [PATCH 04/17] fixup! fix tests --- .../Plugins/Language/CPlusPlus/Coroutines.cpp | 3 +-- .../Plugins/Language/CPlusPlus/LibCxx.cpp | 3 ++- .../CPlusPlus/LibCxxInitializerList.cpp | 2 +- .../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 5 ++--- .../Language/CPlusPlus/LibCxxProxyArray.cpp | 2 +- .../Language/CPlusPlus/LibCxxQueue.cpp | 7 ++++--- .../Language/CPlusPlus/LibCxxSliceArray.cpp | 2 +- .../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 2 +- .../Language/CPlusPlus/LibCxxValarray.cpp | 4 ++-- .../Language/CPlusPlus/LibCxxVector.cpp | 8 ++++---- lldb/source/Plugins/Language/ObjC/NSArray.cpp | 8 ++++---- .../Plugins/Language/ObjC/NSDictionary.cpp | 20 +++++++++---------- .../Plugins/Language/ObjC/NSIndexPath.cpp | 4 ++-- lldb/source/Plugins/Language/ObjC/NSSet.cpp | 12 +++++------ .../Python/ScriptInterpreterPython.cpp | 19 +++++++++--------- .../TypeSystem/Clang/TypeSystemClang.cpp | 5 ++--- lldb/source/Symbol/CompilerType.cpp | 5 ++--- .../ValueObject/ValueObjectRegister.cpp | 3 +-- .../ValueObjectSyntheticFilter.cpp | 11 +++++++--- 19 files changed, 63 insertions(+), 62 deletions(-) diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp index f49d6cfdb2a70..57b8a2a7251fb 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp @@ -207,8 +207,7 @@ StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( "'SyntheticChildrenFrontend::StdlibCoroutineHandleSyntheticFrontEnd' " "cannot find index of child '%s'. (m_resume_ptr_sp='%p', " "m_destroy_ptr_sp='%p')", - name.AsCString(), static_cast(m_resume_ptr_sp.get()), - static_cast(m_destroy_ptr_sp.get())); + name.AsCString(), m_resume_ptr_sp.get(), m_destroy_ptr_sp.get()); if (name == ConstString("resume")) return 0; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index 93b4a382955df..40d6b04cc3de1 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -466,7 +466,8 @@ ExtractLibcxxStringInfo(ValueObject &valobj) { auto index_or_err = l->GetIndexOfChildWithName("__data_"); if (!index_or_err) { - LLDB_LOG_ERROR(GetLog(LLDBLog::Types), index_or_err.takeError(), "{0}"); + LLDB_LOG_ERROR(GetLog(LLDBLog::DataFormatters), index_or_err.takeError(), + "{0}"); return {}; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp index 7f59543ca9fe9..cec893cd329ed 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp @@ -106,7 +106,7 @@ lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd:: if (!m_start) { return llvm::createStringError( "'SyntheticChildrenFrontend::LibcxxInitializerListSyntheticFrontEnd' " - "cannot find index of child '%s'", + "cannot find index of child '%s': Invalid start pointer.", name.AsCString()); } size_t idx = ExtractIndexFromString(name.GetCString()); diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp index c3e86528d86a3..86573991ad5f5 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp @@ -501,9 +501,8 @@ lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: if (!m_pair_sp) return llvm::createStringError( "'SyntheticChildrenFrontend::LibCxxMapIteratorSyntheticFrontEnd' " - "cannot find index of child '%s'. Underlying pair is invalid: " - "m_pair_sp=%p", - name.AsCString(), static_cast(m_pair_sp.get())); + "cannot find index of child '%s': Invalid underlying pair.", + name.AsCString()); return m_pair_sp->GetIndexOfChildWithName(name); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp index c7515768a522c..ca90945d500b5 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp @@ -179,7 +179,7 @@ lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd:: if (!m_base) return llvm::createStringError( "'SyntheticChildrenFrontend::LibcxxStdProxyArraySyntheticFrontEnd' " - "cannot find index of child '%s'", + "cannot find index of child '%s': Invalid base pointer.", name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp index 48a4960ae024a..fe266c62f6654 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp @@ -23,9 +23,10 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (m_container_sp) return m_container_sp->GetIndexOfChildWithName(name); - return llvm::createStringError("'SyntheticChildrenFrontend::QueueFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError( + "'SyntheticChildrenFrontend::QueueFrontEnd' " + "cannot find index of child '%s': Invalid underlying container.", + name.AsCString()); } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp index 9863a1ed8be8d..f00e13548347a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp @@ -150,7 +150,7 @@ lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd:: if (!m_start) return llvm::createStringError( "'SyntheticChildrenFrontend::LibcxxStdSliceArraySyntheticFrontEnd' " - "cannot find index of child '%s'", + "cannot find index of child '%s': Invalid start pointer.", name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp index 4364c0f4e0144..f0bf43a80fc2c 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp @@ -132,7 +132,7 @@ llvm::Expected lldb_private::formatters:: if (!m_start) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxStdSpanSyntheticFrontEnd' cannot " - "find index of child '%s'", + "find index of child '%s': Invalid start pointer.", name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index a2ec7d0e37387..6605898342b7a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -129,8 +129,8 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: if (!m_start || !m_finish) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxStdValarraySyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + "cannot find index of child '%s'. (m_start='%d', m_finish='%d')", + name.AsCString(), m_start, m_finish); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { return llvm::createStringError( diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index 493d9333422e5..fed7e98a5fbaa 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -169,8 +169,8 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: if (!m_start || !m_finish) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxStdVectorSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (m_start='%d', m_finish='%d')", + name.AsCString(), m_start, m_finish); size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) { return llvm::createStringError( @@ -277,8 +277,8 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: if (!m_count || !m_base_data_address) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (m_count='%d', m_base_data_address='%d')", + name.AsCString(), m_count, m_base_data_address); const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp index f7db55f1bcb63..f2197c88085ca 100644 --- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp @@ -534,8 +534,8 @@ llvm::Expected lldb_private::formatters::NSArrayMSyntheticFrontEndBase:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontend::NSArrayMSyntheticFrontEndBase' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } @@ -624,8 +624,8 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd< (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::ObjCClassSyntheticChildrenFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + "cannot find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp index 17e8b1dfff556..ee8a67bb93265 100644 --- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp @@ -593,8 +593,8 @@ llvm::Expected lldb_private::formatters:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSDictionaryISyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } @@ -730,8 +730,8 @@ llvm::Expected lldb_private::formatters:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSCFDictionarySyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } @@ -866,8 +866,8 @@ lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSConstantDictionarySyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + "cannot find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } @@ -1072,8 +1072,8 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::GenericNSDictionaryMSyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + "cannot find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } @@ -1233,8 +1233,8 @@ llvm::Expected lldb_private::formatters::Foundation1100:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSDictionaryMSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp index 6c9485e88fbcf..7c4a918fde28f 100644 --- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp @@ -133,8 +133,8 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd { (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSIndexPathSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp index 7f1757250d26c..42eeedd9d0a45 100644 --- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp @@ -395,8 +395,8 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName( (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSSetISyntheticFrontEnd' cannot find " - "index of child '%s'", - name.AsCString()); + "index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } @@ -532,8 +532,8 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName( (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSCFSetSyntheticFrontEnd' cannot find " - "index of child '%s'", - name.AsCString()); + "index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } @@ -670,8 +670,8 @@ llvm::Expected lldb_private::formatters::GenericNSSetMSyntheticFrontEnd< (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::GenericNSSetMSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (idx='%d')", + name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index 16225ad11a5d3..ffcf28d621440 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -2042,21 +2042,21 @@ llvm::Expected ScriptInterpreterPythonImpl::GetIndexOfChildWithName( if (!implementor_sp) return llvm::createStringError( "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " - "index of child '%s'", - child_name); + "index of child '%s'. Invalid implementor (implementor_sp='%p').", + child_name, implementor_sp.get()); StructuredData::Generic *generic = implementor_sp->GetAsGeneric(); if (!generic) return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " - "index of child '%s'", - child_name); + "'ScriptInterpreterPythonImpl' cannot find index of child '%s'. Could " + "not get generic from implementor (generic='%p').", + child_name, generic); auto *implementor = static_cast(generic->GetValue()); if (!implementor) return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " - "index of child '%s'", - child_name); + "'ScriptInterpreterPythonImpl' cannot find index of child '%s'. Could " + "not cast to PyObject (implementor='%p')", + child_name, implementor); int ret_val = INT32_MAX; @@ -2069,8 +2069,7 @@ llvm::Expected ScriptInterpreterPythonImpl::GetIndexOfChildWithName( if (ret_val == INT32_MAX) return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " - "index of child '%s'", + "'ScriptInterpreterPythonImpl' cannot find index of child '%s'", child_name); return ret_val; } diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp index fe1851fabf654..6429ccd0db973 100644 --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp @@ -7159,9 +7159,8 @@ TypeSystemClang::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, break; } } - return llvm::createStringError("'SyntheticChildrenFrontEnd::TypeSystemClang' " - "cannot find index of child '%s'", - name.str().c_str()); + return llvm::createStringError( + "'TypeSystemClang' cannot find index of child '%s'", name.str().c_str()); } CompilerType diff --git a/lldb/source/Symbol/CompilerType.cpp b/lldb/source/Symbol/CompilerType.cpp index 2b47c3e95afab..ea4e442c3f205 100644 --- a/lldb/source/Symbol/CompilerType.cpp +++ b/lldb/source/Symbol/CompilerType.cpp @@ -1031,9 +1031,8 @@ CompilerType::GetIndexOfChildWithName(llvm::StringRef name, return type_system_sp->GetIndexOfChildWithName(m_type, name, omit_empty_base_classes); } - return llvm::createStringError("'SyntheticChildrenFrontEnd::CompilerType' " - "cannot find index of child '%s'", - name.str().c_str()); + return llvm::createStringError( + "'CompilerType' cannot find index of child '%s'", name.str().c_str()); } // Dumping types diff --git a/lldb/source/ValueObject/ValueObjectRegister.cpp b/lldb/source/ValueObject/ValueObjectRegister.cpp index e91e9f5ef2b9c..94646ffa94d9a 100644 --- a/lldb/source/ValueObject/ValueObjectRegister.cpp +++ b/lldb/source/ValueObject/ValueObjectRegister.cpp @@ -147,8 +147,7 @@ ValueObjectRegisterSet::GetIndexOfChildWithName(llvm::StringRef name) { return reg_info->kinds[eRegisterKindLLDB]; } return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ValueObjectRegisterSet' cannot find index " - "of child '%s'", + "'ValueObjectRegisterSet' cannot find index of child '%s'", name.str().c_str()); } diff --git a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp index 82ac458c27001..ed4e8611845bb 100644 --- a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp @@ -350,13 +350,18 @@ ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { std::lock_guard guard(m_child_mutex); m_name_toindex[name.GetCString()] = *index_or_err; return *index_or_err; - } else if (!found_index && m_synth_filter_up == nullptr) + } else if (!found_index && m_synth_filter_up == nullptr) { return llvm::createStringError( "'SyntheticChildrenFrontEnd::ValueObjectSynthetic' cannot find index " - "of child '%s'", + "of child '%s'. m_synth_filter_up is null.", name.AsCString()); - else /*if (iter != m_name_toindex.end())*/ + } else if (found_index) { return *found_index; + } else /*if (iter != m_name_toindex.end())*/ + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ValueObjectSynthetic' cannot find index " + "of child '%s'", + name.AsCString()); } bool ValueObjectSynthetic::IsInScope() { return m_parent->IsInScope(); } From 14b5250beb7952db8ac5c436c4ed86bb2c10ef48 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 11:55:25 +0100 Subject: [PATCH 05/17] use PRIu32 instead of %d --- lldb/source/DataFormatters/VectorType.cpp | 4 ++-- .../Plugins/Language/CPlusPlus/LibCxxValarray.cpp | 3 ++- .../source/Plugins/Language/CPlusPlus/LibCxxVector.cpp | 10 ++++++---- lldb/source/Plugins/Language/ObjC/NSArray.cpp | 4 ++-- lldb/source/Plugins/Language/ObjC/NSDictionary.cpp | 10 +++++----- lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp | 2 +- lldb/source/Plugins/Language/ObjC/NSSet.cpp | 6 +++--- 7 files changed, 21 insertions(+), 18 deletions(-) diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp index ccacc64149b17..a31a795375e9a 100644 --- a/lldb/source/DataFormatters/VectorType.cpp +++ b/lldb/source/DataFormatters/VectorType.cpp @@ -276,8 +276,8 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd { (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::VectorTypeSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (idx='" PRIu32 "')", + name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index 6605898342b7a..3bceff843d06c 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -129,7 +129,8 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: if (!m_start || !m_finish) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxStdValarraySyntheticFrontEnd' " - "cannot find index of child '%s'. (m_start='%d', m_finish='%d')", + "cannot find index of child '%s'. (m_start='" PRIu32 + "', m_finish='" PRIu32 "')", name.AsCString(), m_start, m_finish); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index fed7e98a5fbaa..feafdd421d1b7 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -169,7 +169,8 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: if (!m_start || !m_finish) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxStdVectorSyntheticFrontEnd' cannot " - "find index of child '%s'. (m_start='%d', m_finish='%d')", + "find index of child '%s'. (m_start='" PRIu32 "', m_finish='" PRIu32 + "')", name.AsCString(), m_start, m_finish); size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) { @@ -277,7 +278,8 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: if (!m_count || !m_base_data_address) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " - "find index of child '%s'. (m_count='%d', m_base_data_address='%d')", + "find index of child '%s'. (m_count='" PRIu32 + "', m_base_data_address='" PRIu32 "')", name.AsCString(), m_count, m_base_data_address); const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); @@ -285,8 +287,8 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + "find index of child '%s'. (idx='" PRIu32 "')", + name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp index f2197c88085ca..7c8d1ee75a3dd 100644 --- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp @@ -534,7 +534,7 @@ llvm::Expected lldb_private::formatters::NSArrayMSyntheticFrontEndBase:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontend::NSArrayMSyntheticFrontEndBase' cannot " - "find index of child '%s'. (idx='%d')", + "find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } @@ -624,7 +624,7 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd< (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::ObjCClassSyntheticChildrenFrontEnd' " - "cannot find index of child '%s'. (idx='%d')", + "cannot find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp index ee8a67bb93265..ba8d94514b1bc 100644 --- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp @@ -593,7 +593,7 @@ llvm::Expected lldb_private::formatters:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSDictionaryISyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='%d')", + "find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } @@ -730,7 +730,7 @@ llvm::Expected lldb_private::formatters:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSCFDictionarySyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='%d')", + "find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } @@ -866,7 +866,7 @@ lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSConstantDictionarySyntheticFrontEnd' " - "cannot find index of child '%s'. (idx='%d')", + "cannot find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } @@ -1072,7 +1072,7 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::GenericNSDictionaryMSyntheticFrontEnd' " - "cannot find index of child '%s'. (idx='%d')", + "cannot find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } @@ -1233,7 +1233,7 @@ llvm::Expected lldb_private::formatters::Foundation1100:: (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSDictionaryMSyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='%d')", + "find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp index 7c4a918fde28f..a072a77c79e2d 100644 --- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp @@ -133,7 +133,7 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd { (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSIndexPathSyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='%d')", + "find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp index 42eeedd9d0a45..effe623f652e5 100644 --- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp @@ -395,7 +395,7 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName( (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSSetISyntheticFrontEnd' cannot find " - "index of child '%s'. (idx='%d')", + "index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } @@ -532,7 +532,7 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName( (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::NSCFSetSyntheticFrontEnd' cannot find " - "index of child '%s'. (idx='%d')", + "index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } @@ -670,7 +670,7 @@ llvm::Expected lldb_private::formatters::GenericNSSetMSyntheticFrontEnd< (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) return llvm::createStringError( "'SyntheticChildrenFrontEnd::GenericNSSetMSyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='%d')", + "find index of child '%s'. (idx='" PRIu32 "')", name.AsCString(), idx); return idx; } From 86f52fa2355d6066823c8e372762105476e684d5 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 12:55:41 +0100 Subject: [PATCH 06/17] address comments --- .../Plugins/Language/CPlusPlus/BlockPointer.cpp | 9 ++++----- .../source/Plugins/Language/CPlusPlus/Coroutines.cpp | 9 ++++----- .../Plugins/Language/CPlusPlus/GenericBitset.cpp | 7 +++---- .../Plugins/Language/CPlusPlus/GenericOptional.cpp | 7 +++---- lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp | 7 +++---- .../Plugins/Language/CPlusPlus/LibCxxAtomic.cpp | 7 +++---- .../Language/CPlusPlus/LibCxxInitializerList.cpp | 9 ++++----- .../source/Plugins/Language/CPlusPlus/LibCxxList.cpp | 7 +++---- lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp | 9 ++++----- .../Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp | 9 ++++----- .../Plugins/Language/CPlusPlus/LibCxxQueue.cpp | 2 +- .../Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp | 9 ++++----- .../source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 7 +++---- .../Plugins/Language/CPlusPlus/LibCxxTuple.cpp | 7 +++---- .../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 7 +++---- .../Plugins/Language/CPlusPlus/LibCxxValarray.cpp | 7 +++---- lldb/source/Plugins/Language/ObjC/NSArray.cpp | 8 ++++---- .../Python/ScriptInterpreterPython.cpp | 4 ++-- .../ValueObject/ValueObjectSyntheticFilter.cpp | 12 ++++++------ 19 files changed, 64 insertions(+), 79 deletions(-) diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp index bfc2263f814b2..c8382a87f1269 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp @@ -146,10 +146,9 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (!m_block_struct_type.IsValid()) - return llvm::createStringError( - "'SyntheticChildrenFrontend::BlockPointerSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'BlockPointerSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); const bool omit_empty_base_classes = false; return m_block_struct_type.GetIndexOfChildWithName(name.AsCString(), @@ -179,7 +178,7 @@ bool lldb_private::formatters::BlockPointerSummaryProvider( synthetic_children->GetIndexOfChildWithName(s_FuncPtr_name); if (!index_or_err) { - LLDB_LOG_ERROR(GetLog(LLDBLog::Types), index_or_err.takeError(), "{0}"); + LLDB_LOG_ERROR(GetLog(LLDBLog::DataFormatters), index_or_err.takeError(), "{0}"); return false; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp index 57b8a2a7251fb..195b777f91ebe 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp @@ -204,7 +204,7 @@ StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { if (!m_resume_ptr_sp || !m_destroy_ptr_sp) return llvm::createStringError( - "'SyntheticChildrenFrontend::StdlibCoroutineHandleSyntheticFrontEnd' " + "'StdlibCoroutineHandleSyntheticFrontEnd' " "cannot find index of child '%s'. (m_resume_ptr_sp='%p', " "m_destroy_ptr_sp='%p')", name.AsCString(), m_resume_ptr_sp.get(), m_destroy_ptr_sp.get()); @@ -216,10 +216,9 @@ StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( if (name == ConstString("promise_ptr") && m_promise_ptr_sp) return 2; - return llvm::createStringError( - "'SyntheticChildrenFrontend::StdlibCoroutineHandleSyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'StdlibCoroutineHandleSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp index b7b8733dfe1f0..0e4311ecb88dd 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp @@ -31,10 +31,9 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = formatters::ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::GenericBitsetFrontEnd' cannot find " - "index of child '%s'", - name.AsCString()); + return llvm::createStringError("'GenericBitsetFrontEnd' cannot find " + "index of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp index 6f49e09196b1c..cfb5b35923521 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp @@ -41,10 +41,9 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd { return 0; size_t idx = formatters::ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::GenericOptionalFrontend' cannot find " - "index of child '%s'", - name.AsCString()); + return llvm::createStringError("'GenericOptionalFrontend' cannot find " + "index of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index 40d6b04cc3de1..19c9d42689a0c 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -316,10 +316,9 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: return 0; if (name == "$$dereference$$") return 1; - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxSharedPtrSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxSharedPtrSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp index 02510c9776a78..5e4bfd86bdc6d 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp @@ -135,10 +135,9 @@ lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (name == "Value") return 0; - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdAtomicSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxStdAtomicSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp index cec893cd329ed..755d9a8c18df9 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp @@ -105,16 +105,15 @@ lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) { return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxInitializerListSyntheticFrontEnd' " + "'LibcxxInitializerListSyntheticFrontEnd' " "cannot find index of child '%s': Invalid start pointer.", name.AsCString()); } size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxInitializerListSyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxInitializerListSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp index 1fe6094f4c31f..1da9bf5a9566d 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp @@ -109,10 +109,9 @@ class AbstractListFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::AbstractListFrontEnd' cannot find index " - "of child '%s'", - name.AsCString()); + return llvm::createStringError("'AbstractListFrontEnd' cannot find index " + "of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp index 86573991ad5f5..e2acb4b90ef0a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp @@ -397,10 +397,9 @@ llvm::Expected lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdMapSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxStdMapSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } return idx; } @@ -500,7 +499,7 @@ lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_pair_sp) return llvm::createStringError( - "'SyntheticChildrenFrontend::LibCxxMapIteratorSyntheticFrontEnd' " + "'LibCxxMapIteratorSyntheticFrontEnd' " "cannot find index of child '%s': Invalid underlying pair.", name.AsCString()); diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp index ca90945d500b5..097b83cc0ec02 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp @@ -178,15 +178,14 @@ lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_base) return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdProxyArraySyntheticFrontEnd' " + "'LibcxxStdProxyArraySyntheticFrontEnd' " "cannot find index of child '%s': Invalid base pointer.", name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdProxyArraySyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxStdProxyArraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp index fe266c62f6654..e267b70cc3c30 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp @@ -24,7 +24,7 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd { if (m_container_sp) return m_container_sp->GetIndexOfChildWithName(name); return llvm::createStringError( - "'SyntheticChildrenFrontend::QueueFrontEnd' " + "'QueueFrontEnd' " "cannot find index of child '%s': Invalid underlying container.", name.AsCString()); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp index f00e13548347a..a71e4aa263655 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp @@ -149,15 +149,14 @@ lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdSliceArraySyntheticFrontEnd' " + "'LibcxxStdSliceArraySyntheticFrontEnd' " "cannot find index of child '%s': Invalid start pointer.", name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdSliceArraySyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxStdSliceArraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp index f0bf43a80fc2c..3a37bc7b257a1 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp @@ -136,10 +136,9 @@ llvm::Expected lldb_private::formatters:: name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdSpanSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxStdSpanSyntheticFrontEnd' cannot " + "find index of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp index df94638ba21bd..71be863b395a1 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp @@ -23,10 +23,9 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = formatters::ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::TupleFrontEnd' cannot find index of " - "child '%s'", - name.AsCString()); + return llvm::createStringError("'TupleFrontEnd' cannot find index of " + "child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp index 3b0fbc6d8d0a5..0aaffdfc5d3f1 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp @@ -296,10 +296,9 @@ lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdUnorderedMapSyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxStdUnorderedMapSyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index 3bceff843d06c..1426648ebaab5 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -134,10 +134,9 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: name.AsCString(), m_start, m_finish); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontend::LibcxxStdValarraySyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("'LibcxxStdValarraySyntheticFrontEnd' " + "cannot find index of child '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp index 7c8d1ee75a3dd..b671e14f558dd 100644 --- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp @@ -532,10 +532,10 @@ llvm::Expected lldb_private::formatters::NSArrayMSyntheticFrontEndBase:: size_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontend::NSArrayMSyntheticFrontEndBase' cannot " - "find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("'NSArrayMSyntheticFrontEndBase' cannot " + "find index of child '%s'. (idx='" PRIu32 + "')", + name.AsCString(), idx); return idx; } diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index ffcf28d621440..d9fb9cb501d23 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -2041,8 +2041,8 @@ llvm::Expected ScriptInterpreterPythonImpl::GetIndexOfChildWithName( const StructuredData::ObjectSP &implementor_sp, const char *child_name) { if (!implementor_sp) return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ScriptInterpreterPythonImpl' cannot find " - "index of child '%s'. Invalid implementor (implementor_sp='%p').", + "'ScriptInterpreterPythonImpl' cannot find index of child '%s'. " + "Invalid implementor (implementor_sp='%p').", child_name, implementor_sp.get()); StructuredData::Generic *generic = implementor_sp->GetAsGeneric(); diff --git a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp index ed4e8611845bb..16f3190fff756 100644 --- a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp @@ -355,13 +355,13 @@ ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { "'SyntheticChildrenFrontEnd::ValueObjectSynthetic' cannot find index " "of child '%s'. m_synth_filter_up is null.", name.AsCString()); - } else if (found_index) { + } else if (found_index) return *found_index; - } else /*if (iter != m_name_toindex.end())*/ - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ValueObjectSynthetic' cannot find index " - "of child '%s'", - name.AsCString()); + + return llvm::createStringError( + "'SyntheticChildrenFrontEnd::ValueObjectSynthetic' cannot find index " + "of child '%s'", + name.AsCString()); } bool ValueObjectSynthetic::IsInScope() { return m_parent->IsInScope(); } From a35fea8c981b57a6edb99e9af041fc2226378fa2 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 13:08:13 +0100 Subject: [PATCH 07/17] Update lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp Co-authored-by: Michael Buch --- lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index feafdd421d1b7..20a5d480605d3 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -278,8 +278,8 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: if (!m_count || !m_base_data_address) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " - "find index of child '%s'. (m_count='" PRIu32 - "', m_base_data_address='" PRIu32 "')", + "find index of child '%s'. (m_count='" PRIu64 + "', m_base_data_address='" PRIu64 "')", name.AsCString(), m_count, m_base_data_address); const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); From 8d13ebb05173ee2d42f252875105f941aea6164a Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 13:09:27 +0100 Subject: [PATCH 08/17] Update lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp Co-authored-by: Michael Buch --- lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp index 16f3190fff756..16423865809e7 100644 --- a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp @@ -359,7 +359,7 @@ ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { return *found_index; return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ValueObjectSynthetic' cannot find index " + "'ValueObjectSynthetic' cannot find index " "of child '%s'", name.AsCString()); } From dcfe07b684b6ebadcd9ad009e578eb457e62d847 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 13:12:17 +0100 Subject: [PATCH 09/17] Update lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp Co-authored-by: Michael Buch --- lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index 1426648ebaab5..90faa6f44f0d1 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -129,8 +129,7 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: if (!m_start || !m_finish) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxStdValarraySyntheticFrontEnd' " - "cannot find index of child '%s'. (m_start='" PRIu32 - "', m_finish='" PRIu32 "')", + "cannot find index of child '%s'. (m_start='%p', m_finish='%p')", name.AsCString(), m_start, m_finish); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { From 443b930a41f4c4ec6ffcfe2e1b69300b7c9e3f9e Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 13:12:53 +0100 Subject: [PATCH 10/17] Update lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp Co-authored-by: Michael Buch --- lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index 20a5d480605d3..28fade0b6d912 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -169,8 +169,7 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: if (!m_start || !m_finish) return llvm::createStringError( "'SyntheticChildrenFrontEnd::LibcxxStdVectorSyntheticFrontEnd' cannot " - "find index of child '%s'. (m_start='" PRIu32 "', m_finish='" PRIu32 - "')", + "find index of child '%s'. (m_start='%p', m_finish='%p')", name.AsCString(), m_start, m_finish); size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) { From 8d14f515f4b0854f4024bdf0f0daa464a2f6a9be Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 14:37:59 +0100 Subject: [PATCH 11/17] fix formatting --- lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp index c8382a87f1269..5f486b91b09cf 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp @@ -178,7 +178,8 @@ bool lldb_private::formatters::BlockPointerSummaryProvider( synthetic_children->GetIndexOfChildWithName(s_FuncPtr_name); if (!index_or_err) { - LLDB_LOG_ERROR(GetLog(LLDBLog::DataFormatters), index_or_err.takeError(), "{0}"); + LLDB_LOG_ERROR(GetLog(LLDBLog::DataFormatters), index_or_err.takeError(), + "{0}"); return false; } From 8ce502edbf069bc6c7f6ed568f855ae5e4eefc7f Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 14:43:05 +0100 Subject: [PATCH 12/17] fix formatting --- lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp index 16423865809e7..8fae93e274e6d 100644 --- a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp @@ -359,8 +359,7 @@ ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { return *found_index; return llvm::createStringError( - "'ValueObjectSynthetic' cannot find index " - "of child '%s'", + "'ValueObjectSynthetic' cannot find index of child '%s'", name.AsCString()); } From ac7cf1fed2459d7036a7c8ce65888332ce36a15f Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 15:01:24 +0100 Subject: [PATCH 13/17] fix tests --- lldb/unittests/Platform/PlatformSiginfoTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/unittests/Platform/PlatformSiginfoTest.cpp b/lldb/unittests/Platform/PlatformSiginfoTest.cpp index b9f1fe4bbaadf..a0bd25820af35 100644 --- a/lldb/unittests/Platform/PlatformSiginfoTest.cpp +++ b/lldb/unittests/Platform/PlatformSiginfoTest.cpp @@ -62,7 +62,7 @@ class PlatformSiginfoTest : public ::testing::Test { uint64_t bit_offset; std::string name; field_type = field_type.GetFieldAtIndex( - field_type.GetIndexOfChildWithName(field_name, false), name, + *field_type.GetIndexOfChildWithName(field_name, false), name, &bit_offset, nullptr, nullptr); ASSERT_TRUE(field_type); total_offset += bit_offset; From 3cf13eca8d490daf37f816dce89ebb28ea621d9d Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 15:51:41 +0100 Subject: [PATCH 14/17] fixup! fix tests --- lldb/unittests/Platform/PlatformSiginfoTest.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lldb/unittests/Platform/PlatformSiginfoTest.cpp b/lldb/unittests/Platform/PlatformSiginfoTest.cpp index a0bd25820af35..6262bd723a686 100644 --- a/lldb/unittests/Platform/PlatformSiginfoTest.cpp +++ b/lldb/unittests/Platform/PlatformSiginfoTest.cpp @@ -61,9 +61,10 @@ class PlatformSiginfoTest : public ::testing::Test { for (auto field_name : llvm::split(path, '.')) { uint64_t bit_offset; std::string name; - field_type = field_type.GetFieldAtIndex( - *field_type.GetIndexOfChildWithName(field_name, false), name, - &bit_offset, nullptr, nullptr); + auto index_or_err = field_type.GetIndexOfChildWithName(field_name, false); + ASSERT_TRUE(index_or_err); + field_type = field_type.GetFieldAtIndex(*index_or_err, name, &bit_offset, + nullptr, nullptr); ASSERT_TRUE(field_type); total_offset += bit_offset; } From 46999995f3cc7923bf888cd9dc002ef7a6f01f1e Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Thu, 24 Apr 2025 16:52:10 +0100 Subject: [PATCH 15/17] fixup! fixup! fix tests --- lldb/unittests/Platform/PlatformSiginfoTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/unittests/Platform/PlatformSiginfoTest.cpp b/lldb/unittests/Platform/PlatformSiginfoTest.cpp index 6262bd723a686..621c36c3b8dc4 100644 --- a/lldb/unittests/Platform/PlatformSiginfoTest.cpp +++ b/lldb/unittests/Platform/PlatformSiginfoTest.cpp @@ -62,7 +62,7 @@ class PlatformSiginfoTest : public ::testing::Test { uint64_t bit_offset; std::string name; auto index_or_err = field_type.GetIndexOfChildWithName(field_name, false); - ASSERT_TRUE(index_or_err); + ASSERT_FALSE(!index_or_err); field_type = field_type.GetFieldAtIndex(*index_or_err, name, &bit_offset, nullptr, nullptr); ASSERT_TRUE(field_type); From 3db059d9fc21ecb241ebfc37839e526109c8eb0b Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Tue, 29 Apr 2025 13:23:13 +0100 Subject: [PATCH 16/17] switch to generic error message --- .../lldb/DataFormatters/TypeSynthetic.h | 5 +--- .../lldb/Interpreter/ScriptInterpreter.h | 4 +-- lldb/source/DataFormatters/TypeSynthetic.cpp | 8 ++--- lldb/source/DataFormatters/VectorType.cpp | 5 +--- .../Language/CPlusPlus/BlockPointer.cpp | 4 +-- .../Plugins/Language/CPlusPlus/Coroutines.cpp | 10 ++----- .../Language/CPlusPlus/GenericBitset.cpp | 7 ++--- .../Language/CPlusPlus/GenericOptional.cpp | 7 ++--- .../Plugins/Language/CPlusPlus/LibCxx.cpp | 9 ++---- .../Language/CPlusPlus/LibCxxAtomic.cpp | 4 +-- .../CPlusPlus/LibCxxInitializerList.cpp | 9 ++---- .../Plugins/Language/CPlusPlus/LibCxxList.cpp | 7 ++--- .../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 9 ++---- .../Language/CPlusPlus/LibCxxProxyArray.cpp | 9 ++---- .../Language/CPlusPlus/LibCxxQueue.cpp | 5 +--- .../Language/CPlusPlus/LibCxxSliceArray.cpp | 12 ++------ .../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 9 ++---- .../Language/CPlusPlus/LibCxxTuple.cpp | 7 ++--- .../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 9 ++---- .../Language/CPlusPlus/LibCxxValarray.cpp | 9 ++---- .../Language/CPlusPlus/LibCxxVariant.cpp | 8 ++--- .../Language/CPlusPlus/LibCxxVector.cpp | 22 +++----------- .../Plugins/Language/CPlusPlus/LibStdcpp.cpp | 15 ++-------- .../Language/CPlusPlus/LibStdcppTuple.cpp | 6 +--- .../CPlusPlus/LibStdcppUniquePointer.cpp | 5 +--- lldb/source/Plugins/Language/ObjC/Cocoa.cpp | 5 +--- lldb/source/Plugins/Language/ObjC/NSArray.cpp | 10 ++----- .../Plugins/Language/ObjC/NSDictionary.cpp | 30 ++++--------------- lldb/source/Plugins/Language/ObjC/NSError.cpp | 5 +--- .../Plugins/Language/ObjC/NSException.cpp | 5 +--- .../Plugins/Language/ObjC/NSIndexPath.cpp | 5 +--- lldb/source/Plugins/Language/ObjC/NSSet.cpp | 15 ++-------- .../Python/ScriptInterpreterPython.cpp | 19 +++--------- .../TypeSystem/Clang/TypeSystemClang.cpp | 3 +- lldb/source/Symbol/CompilerType.cpp | 3 +- .../ValueObject/ValueObjectRegister.cpp | 4 +-- .../ValueObjectSyntheticFilter.cpp | 9 ++---- 37 files changed, 70 insertions(+), 247 deletions(-) diff --git a/lldb/include/lldb/DataFormatters/TypeSynthetic.h b/lldb/include/lldb/DataFormatters/TypeSynthetic.h index 101a4fce20d05..07596149a7354 100644 --- a/lldb/include/lldb/DataFormatters/TypeSynthetic.h +++ b/lldb/include/lldb/DataFormatters/TypeSynthetic.h @@ -118,10 +118,7 @@ class SyntheticValueProviderFrontEnd : public SyntheticChildrenFrontEnd { lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override { return nullptr; } llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::SyntheticValueProviderFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } lldb::ChildCacheState Update() override { diff --git a/lldb/include/lldb/Interpreter/ScriptInterpreter.h b/lldb/include/lldb/Interpreter/ScriptInterpreter.h index 8033da04424df..3a4a7ae924584 100644 --- a/lldb/include/lldb/Interpreter/ScriptInterpreter.h +++ b/lldb/include/lldb/Interpreter/ScriptInterpreter.h @@ -371,9 +371,7 @@ class ScriptInterpreter : public PluginInterface { virtual llvm::Expected GetIndexOfChildWithName(const StructuredData::ObjectSP &implementor, const char *child_name) { - return llvm::createStringError( - "'PluginInterface::ScriptInterpreter' cannot find index of child '%s'", - child_name); + return llvm::createStringError("Type has no child named '%s'", child_name); } virtual bool diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp index ee7bca0fd7272..08a2986043a00 100644 --- a/lldb/source/DataFormatters/TypeSynthetic.cpp +++ b/lldb/source/DataFormatters/TypeSynthetic.cpp @@ -67,9 +67,7 @@ TypeFilterImpl::FrontEnd::GetIndexOfChildWithName(ConstString name) { } } } - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::FrontEnd' cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } std::string TypeFilterImpl::GetDescription() { @@ -223,9 +221,7 @@ bool ScriptedSyntheticChildren::FrontEnd::MightHaveChildren() { llvm::Expected ScriptedSyntheticChildren::FrontEnd::GetIndexOfChildWithName(ConstString name) { if (!m_wrapper_sp || m_interpreter == nullptr) - return llvm::createStringError( - "'ScriptedSyntheticChildren::FrontEnd' cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return m_interpreter->GetIndexOfChildWithName(m_wrapper_sp, name.GetCString()); } diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp index a31a795375e9a..4fe888c2e8072 100644 --- a/lldb/source/DataFormatters/VectorType.cpp +++ b/lldb/source/DataFormatters/VectorType.cpp @@ -274,10 +274,7 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd { uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::VectorTypeSyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp index 5f486b91b09cf..b692a75863326 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp @@ -146,9 +146,7 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (!m_block_struct_type.IsValid()) - return llvm::createStringError("'BlockPointerSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); const bool omit_empty_base_classes = false; return m_block_struct_type.GetIndexOfChildWithName(name.AsCString(), diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp index 195b777f91ebe..68ba94e82ae66 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp @@ -203,11 +203,7 @@ llvm::Expected StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { if (!m_resume_ptr_sp || !m_destroy_ptr_sp) - return llvm::createStringError( - "'StdlibCoroutineHandleSyntheticFrontEnd' " - "cannot find index of child '%s'. (m_resume_ptr_sp='%p', " - "m_destroy_ptr_sp='%p')", - name.AsCString(), m_resume_ptr_sp.get(), m_destroy_ptr_sp.get()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); if (name == ConstString("resume")) return 0; @@ -216,9 +212,7 @@ StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( if (name == ConstString("promise_ptr") && m_promise_ptr_sp) return 2; - return llvm::createStringError("'StdlibCoroutineHandleSyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp index 0e4311ecb88dd..e0d946c2f1ec2 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp @@ -30,11 +30,8 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = formatters::ExtractIndexFromString(name.GetCString()); - if (idx == UINT32_MAX) { - return llvm::createStringError("'GenericBitsetFrontEnd' cannot find " - "index of child '%s'", - name.AsCString()); - } + if (idx == UINT32_MAX) + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp index cfb5b35923521..65be9120483b1 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp @@ -40,11 +40,8 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd { if (name == "$$dereference$$") return 0; size_t idx = formatters::ExtractIndexFromString(name.GetCString()); - if (idx == UINT32_MAX) { - return llvm::createStringError("'GenericOptionalFrontend' cannot find " - "index of child '%s'", - name.AsCString()); - } + if (idx == UINT32_MAX) + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index 19c9d42689a0c..ede84cb336cdc 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -316,9 +316,7 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: return 0; if (name == "$$dereference$$") return 1; - return llvm::createStringError("'LibcxxSharedPtrSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); } lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: @@ -419,10 +417,7 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd:: return 1; if (name == "$$dereference$$") return 2; - return llvm::createStringError( - "'ScriptedSyntheticChildren::LibcxxUniquePtrSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } bool lldb_private::formatters::LibcxxContainerSummaryProvider( diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp index 5e4bfd86bdc6d..3caddf689cac9 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp @@ -135,9 +135,7 @@ lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (name == "Value") return 0; - return llvm::createStringError("'LibcxxStdAtomicSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp index 755d9a8c18df9..729d0a6ab8e35 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp @@ -104,16 +104,11 @@ llvm::Expected lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) { - return llvm::createStringError( - "'LibcxxInitializerListSyntheticFrontEnd' " - "cannot find index of child '%s': Invalid start pointer.", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("'LibcxxInitializerListSyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp index 1da9bf5a9566d..418bcaa3314a5 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp @@ -108,11 +108,8 @@ class AbstractListFrontEnd : public SyntheticChildrenFrontEnd { public: llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = ExtractIndexFromString(name.GetCString()); - if (idx == UINT32_MAX) { - return llvm::createStringError("'AbstractListFrontEnd' cannot find index " - "of child '%s'", - name.AsCString()); - } + if (idx == UINT32_MAX) + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp index e2acb4b90ef0a..12186fd1ceba1 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp @@ -397,9 +397,7 @@ llvm::Expected lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("'LibcxxStdMapSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } return idx; } @@ -498,10 +496,7 @@ llvm::Expected lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_pair_sp) - return llvm::createStringError( - "'LibCxxMapIteratorSyntheticFrontEnd' " - "cannot find index of child '%s': Invalid underlying pair.", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return m_pair_sp->GetIndexOfChildWithName(name); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp index 097b83cc0ec02..7e1c60886a1cb 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp @@ -177,15 +177,10 @@ llvm::Expected lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_base) - return llvm::createStringError( - "'LibcxxStdProxyArraySyntheticFrontEnd' " - "cannot find index of child '%s': Invalid base pointer.", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("'LibcxxStdProxyArraySyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp index e267b70cc3c30..5cdac75483b29 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp @@ -23,10 +23,7 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (m_container_sp) return m_container_sp->GetIndexOfChildWithName(name); - return llvm::createStringError( - "'QueueFrontEnd' " - "cannot find index of child '%s': Invalid underlying container.", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp index a71e4aa263655..1b2e518fd3a45 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp @@ -148,16 +148,10 @@ llvm::Expected lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) - return llvm::createStringError( - "'LibcxxStdSliceArraySyntheticFrontEnd' " - "cannot find index of child '%s': Invalid start pointer.", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); - if (idx == UINT32_MAX) { - return llvm::createStringError("'LibcxxStdSliceArraySyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); - } + if (idx == UINT32_MAX) + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp index 3a37bc7b257a1..90117ead1ee6c 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp @@ -130,15 +130,10 @@ lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::Update() { llvm::Expected lldb_private::formatters:: LibcxxStdSpanSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (!m_start) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibcxxStdSpanSyntheticFrontEnd' cannot " - "find index of child '%s': Invalid start pointer.", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("'LibcxxStdSpanSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp index 71be863b395a1..090af594f4c09 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp @@ -22,11 +22,8 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = formatters::ExtractIndexFromString(name.GetCString()); - if (idx == UINT32_MAX) { - return llvm::createStringError("'TupleFrontEnd' cannot find index of " - "child '%s'", - name.AsCString()); - } + if (idx == UINT32_MAX) + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp index 0aaffdfc5d3f1..d938294da671d 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp @@ -296,9 +296,7 @@ lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("'LibcxxStdUnorderedMapSyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } return idx; } @@ -412,10 +410,7 @@ lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd:: return 0; if (name == "second") return 1; - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibCxxUnorderedMapIteratorSyntheticFrontEnd'" - " cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index 90faa6f44f0d1..6e0054784e89f 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -127,15 +127,10 @@ llvm::Expected lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start || !m_finish) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibcxxStdValarraySyntheticFrontEnd' " - "cannot find index of child '%s'. (m_start='%p', m_finish='%p')", - name.AsCString(), m_start, m_finish); + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("'LibcxxStdValarraySyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp index 06358224e473e..04cf8747fc387 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp @@ -204,12 +204,8 @@ class VariantFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t index = formatters::ExtractIndexFromString(name.GetCString()); - if (index == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::VariantFrontEnd' cannot find index of " - "child '%s'", - name.AsCString()); - } + if (index == UINT32_MAX) + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); return index; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index 28fade0b6d912..b35961c5f9cec 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -167,17 +167,10 @@ llvm::Expected lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start || !m_finish) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibcxxStdVectorSyntheticFrontEnd' cannot " - "find index of child '%s'. (m_start='%p', m_finish='%p')", - name.AsCString(), m_start, m_finish); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibcxxStdVectorSyntheticFrontEnd' cannot " - "find index of " - "child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); } return index; } @@ -275,19 +268,12 @@ llvm::Expected lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_count || !m_base_data_address) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " - "find index of child '%s'. (m_count='" PRIu64 - "', m_base_data_address='" PRIu64 "')", - name.AsCString(), m_count, m_base_data_address); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibcxxVectorBoolSyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp index e754938f94056..8e686044b95cc 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp @@ -153,10 +153,7 @@ LibstdcppMapIteratorSyntheticFrontEnd::GetIndexOfChildWithName( return 0; if (name == "second") return 1; - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibstdcppMapIteratorSyntheticFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } SyntheticChildrenFrontEnd * @@ -235,10 +232,7 @@ llvm::Expected VectorIteratorSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (name == "item") return 0; - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::VectorIteratorSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } bool lldb_private::formatters::LibStdcppStringSummaryProvider( @@ -423,10 +417,7 @@ LibStdcppSharedPtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { return 0; if (name == "object" || name == "$$dereference$$") return 1; - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibStdcppSharedPtrSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'",name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp index 2283c9f112549..75d0dda6492de 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp @@ -100,11 +100,7 @@ llvm::Expected LibStdcppTupleSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) { - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibStdcppTupleSyntheticFrontEnd' cannot " - "find index of " - "child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } return index; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp index 008edba227ac6..f9fc9c10523b8 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp @@ -147,10 +147,7 @@ LibStdcppUniquePtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { return 1; if (name == "obj" || name == "object" || name == "$$dereference$$") return 2; - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::LibStdcppUniquePtrSyntheticFrontEnd' cannot " - "find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } bool LibStdcppUniquePtrSyntheticFrontEnd::GetSummary( diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp index 18fb26781f8d3..ae69a92dca5ab 100644 --- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp +++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp @@ -1050,10 +1050,7 @@ class ObjCClassSyntheticChildrenFrontEnd : public SyntheticChildrenFrontEnd { bool MightHaveChildren() override { return false; } llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ObjCClassSyntheticChildrenFrontEnd' " - "cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } }; diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp index b671e14f558dd..2e79ab62b2d53 100644 --- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp @@ -532,10 +532,7 @@ llvm::Expected lldb_private::formatters::NSArrayMSyntheticFrontEndBase:: size_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("'NSArrayMSyntheticFrontEndBase' cannot " - "find index of child '%s'. (idx='" PRIu32 - "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } @@ -622,10 +619,7 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd< uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ObjCClassSyntheticChildrenFrontEnd' " - "cannot find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp index ba8d94514b1bc..51df1329fbe45 100644 --- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp @@ -591,10 +591,7 @@ llvm::Expected lldb_private::formatters:: uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSDictionaryISyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } @@ -728,10 +725,7 @@ llvm::Expected lldb_private::formatters:: const uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSCFDictionarySyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString(), idx); return idx; } @@ -864,10 +858,7 @@ lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSConstantDictionarySyntheticFrontEnd' " - "cannot find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } @@ -979,10 +970,7 @@ llvm::Expected lldb_private::formatters:: static const ConstString g_zero("[0]"); if (name == g_zero) return 0; - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSDictionary1SyntheticFrontEnd' cannot find " - "index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } llvm::Expected lldb_private::formatters:: @@ -1070,10 +1058,7 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::GenericNSDictionaryMSyntheticFrontEnd' " - "cannot find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } @@ -1231,10 +1216,7 @@ llvm::Expected lldb_private::formatters::Foundation1100:: uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSDictionaryMSyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSError.cpp b/lldb/source/Plugins/Language/ObjC/NSError.cpp index 37b9a2697c320..07a7d29bb153c 100644 --- a/lldb/source/Plugins/Language/ObjC/NSError.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSError.cpp @@ -169,10 +169,7 @@ class NSErrorSyntheticFrontEnd : public SyntheticChildrenFrontEnd { static ConstString g_userInfo("_userInfo"); if (name == g_userInfo) return 0; - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSErrorSyntheticFrontEnd' cannot find " - "index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } private: diff --git a/lldb/source/Plugins/Language/ObjC/NSException.cpp b/lldb/source/Plugins/Language/ObjC/NSException.cpp index 1f731ec529960..de23c03576545 100644 --- a/lldb/source/Plugins/Language/ObjC/NSException.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSException.cpp @@ -162,10 +162,7 @@ class NSExceptionSyntheticFrontEnd : public SyntheticChildrenFrontEnd { if (name == g_reason) return 1; if (name == g_userInfo) return 2; if (name == g_reserved) return 3; - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSExceptionSyntheticFrontEnd' cannot find " - "index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } private: diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp index a072a77c79e2d..3e859310a32a8 100644 --- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp @@ -131,10 +131,7 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd { uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSIndexPathSyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp index effe623f652e5..b11ab4fe54232 100644 --- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp @@ -393,10 +393,7 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName( uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSSetISyntheticFrontEnd' cannot find " - "index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } @@ -530,10 +527,7 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName( const uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::NSCFSetSyntheticFrontEnd' cannot find " - "index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } @@ -668,10 +662,7 @@ llvm::Expected lldb_private::formatters::GenericNSSetMSyntheticFrontEnd< uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::GenericNSSetMSyntheticFrontEnd' cannot " - "find index of child '%s'. (idx='" PRIu32 "')", - name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index d9fb9cb501d23..16c3226c7f62b 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -2040,23 +2040,14 @@ lldb::ValueObjectSP ScriptInterpreterPythonImpl::GetChildAtIndex( llvm::Expected ScriptInterpreterPythonImpl::GetIndexOfChildWithName( const StructuredData::ObjectSP &implementor_sp, const char *child_name) { if (!implementor_sp) - return llvm::createStringError( - "'ScriptInterpreterPythonImpl' cannot find index of child '%s'. " - "Invalid implementor (implementor_sp='%p').", - child_name, implementor_sp.get()); + return llvm::createStringError("Type has no child named '%s'", child_name); StructuredData::Generic *generic = implementor_sp->GetAsGeneric(); if (!generic) - return llvm::createStringError( - "'ScriptInterpreterPythonImpl' cannot find index of child '%s'. Could " - "not get generic from implementor (generic='%p').", - child_name, generic); + return llvm::createStringError("Type has no child named '%s'", child_name); auto *implementor = static_cast(generic->GetValue()); if (!implementor) - return llvm::createStringError( - "'ScriptInterpreterPythonImpl' cannot find index of child '%s'. Could " - "not cast to PyObject (implementor='%p')", - child_name, implementor); + return llvm::createStringError("Type has no child named '%s'", child_name); int ret_val = INT32_MAX; @@ -2068,9 +2059,7 @@ llvm::Expected ScriptInterpreterPythonImpl::GetIndexOfChildWithName( } if (ret_val == INT32_MAX) - return llvm::createStringError( - "'ScriptInterpreterPythonImpl' cannot find index of child '%s'", - child_name); + return llvm::createStringError("Type has no child named '%s'", child_name); return ret_val; } diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp index 6429ccd0db973..8eddae3eb3758 100644 --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp @@ -7159,8 +7159,7 @@ TypeSystemClang::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, break; } } - return llvm::createStringError( - "'TypeSystemClang' cannot find index of child '%s'", name.str().c_str()); + return llvm::createStringError("Type has no child named '%s'", name.str().c_str()); } CompilerType diff --git a/lldb/source/Symbol/CompilerType.cpp b/lldb/source/Symbol/CompilerType.cpp index ea4e442c3f205..67eb7021081e4 100644 --- a/lldb/source/Symbol/CompilerType.cpp +++ b/lldb/source/Symbol/CompilerType.cpp @@ -1031,8 +1031,7 @@ CompilerType::GetIndexOfChildWithName(llvm::StringRef name, return type_system_sp->GetIndexOfChildWithName(m_type, name, omit_empty_base_classes); } - return llvm::createStringError( - "'CompilerType' cannot find index of child '%s'", name.str().c_str()); + return llvm::createStringError("Type has no child named '%s'", name.str().c_str()); } // Dumping types diff --git a/lldb/source/ValueObject/ValueObjectRegister.cpp b/lldb/source/ValueObject/ValueObjectRegister.cpp index 94646ffa94d9a..288ccff2db576 100644 --- a/lldb/source/ValueObject/ValueObjectRegister.cpp +++ b/lldb/source/ValueObject/ValueObjectRegister.cpp @@ -146,9 +146,7 @@ ValueObjectRegisterSet::GetIndexOfChildWithName(llvm::StringRef name) { if (reg_info != nullptr) return reg_info->kinds[eRegisterKindLLDB]; } - return llvm::createStringError( - "'ValueObjectRegisterSet' cannot find index of child '%s'", - name.str().c_str()); + return llvm::createStringError("Type has no child named '%s'", name.str().c_str()); } #pragma mark - diff --git a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp index 8fae93e274e6d..f9c939591454b 100644 --- a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp @@ -351,16 +351,11 @@ ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { m_name_toindex[name.GetCString()] = *index_or_err; return *index_or_err; } else if (!found_index && m_synth_filter_up == nullptr) { - return llvm::createStringError( - "'SyntheticChildrenFrontEnd::ValueObjectSynthetic' cannot find index " - "of child '%s'. m_synth_filter_up is null.", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } else if (found_index) return *found_index; - return llvm::createStringError( - "'ValueObjectSynthetic' cannot find index of child '%s'", - name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", name.AsCString()); } bool ValueObjectSynthetic::IsInScope() { return m_parent->IsInScope(); } From 23545b89107056b4289fcf527e1b775d53de24e0 Mon Sep 17 00:00:00 2001 From: Charles Zablit Date: Tue, 29 Apr 2025 13:38:58 +0100 Subject: [PATCH 17/17] fixup! switch to generic error message --- .../lldb/DataFormatters/TypeSynthetic.h | 3 ++- lldb/source/DataFormatters/TypeSynthetic.cpp | 6 ++++-- lldb/source/DataFormatters/VectorType.cpp | 3 ++- .../Language/CPlusPlus/BlockPointer.cpp | 3 ++- .../Plugins/Language/CPlusPlus/Coroutines.cpp | 6 ++++-- .../Language/CPlusPlus/GenericBitset.cpp | 3 ++- .../Language/CPlusPlus/GenericOptional.cpp | 3 ++- .../Plugins/Language/CPlusPlus/LibCxx.cpp | 6 ++++-- .../Language/CPlusPlus/LibCxxAtomic.cpp | 3 ++- .../CPlusPlus/LibCxxInitializerList.cpp | 6 ++++-- .../Plugins/Language/CPlusPlus/LibCxxList.cpp | 3 ++- .../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 6 ++++-- .../Language/CPlusPlus/LibCxxProxyArray.cpp | 6 ++++-- .../Plugins/Language/CPlusPlus/LibCxxQueue.cpp | 3 ++- .../Language/CPlusPlus/LibCxxSliceArray.cpp | 6 ++++-- .../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 6 ++++-- .../Plugins/Language/CPlusPlus/LibCxxTuple.cpp | 3 ++- .../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 6 ++++-- .../Language/CPlusPlus/LibCxxValarray.cpp | 6 ++++-- .../Language/CPlusPlus/LibCxxVariant.cpp | 3 ++- .../Language/CPlusPlus/LibCxxVector.cpp | 12 ++++++++---- .../Plugins/Language/CPlusPlus/LibStdcpp.cpp | 9 ++++++--- .../Language/CPlusPlus/LibStdcppTuple.cpp | 3 ++- .../CPlusPlus/LibStdcppUniquePointer.cpp | 3 ++- lldb/source/Plugins/Language/ObjC/Cocoa.cpp | 3 ++- lldb/source/Plugins/Language/ObjC/NSArray.cpp | 6 ++++-- .../Plugins/Language/ObjC/NSDictionary.cpp | 18 ++++++++++++------ lldb/source/Plugins/Language/ObjC/NSError.cpp | 3 ++- .../Plugins/Language/ObjC/NSException.cpp | 3 ++- .../Plugins/Language/ObjC/NSIndexPath.cpp | 3 ++- lldb/source/Plugins/Language/ObjC/NSSet.cpp | 9 ++++++--- .../TypeSystem/Clang/TypeSystemClang.cpp | 3 ++- lldb/source/Symbol/CompilerType.cpp | 3 ++- .../source/ValueObject/ValueObjectRegister.cpp | 3 ++- .../ValueObject/ValueObjectSyntheticFilter.cpp | 6 ++++-- 35 files changed, 118 insertions(+), 59 deletions(-) diff --git a/lldb/include/lldb/DataFormatters/TypeSynthetic.h b/lldb/include/lldb/DataFormatters/TypeSynthetic.h index 07596149a7354..c8d7d15588065 100644 --- a/lldb/include/lldb/DataFormatters/TypeSynthetic.h +++ b/lldb/include/lldb/DataFormatters/TypeSynthetic.h @@ -118,7 +118,8 @@ class SyntheticValueProviderFrontEnd : public SyntheticChildrenFrontEnd { lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override { return nullptr; } llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } lldb::ChildCacheState Update() override { diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp index 08a2986043a00..57009b07dc553 100644 --- a/lldb/source/DataFormatters/TypeSynthetic.cpp +++ b/lldb/source/DataFormatters/TypeSynthetic.cpp @@ -67,7 +67,8 @@ TypeFilterImpl::FrontEnd::GetIndexOfChildWithName(ConstString name) { } } } - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } std::string TypeFilterImpl::GetDescription() { @@ -221,7 +222,8 @@ bool ScriptedSyntheticChildren::FrontEnd::MightHaveChildren() { llvm::Expected ScriptedSyntheticChildren::FrontEnd::GetIndexOfChildWithName(ConstString name) { if (!m_wrapper_sp || m_interpreter == nullptr) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return m_interpreter->GetIndexOfChildWithName(m_wrapper_sp, name.GetCString()); } diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp index 4fe888c2e8072..eab2612d1e941 100644 --- a/lldb/source/DataFormatters/VectorType.cpp +++ b/lldb/source/DataFormatters/VectorType.cpp @@ -274,7 +274,8 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd { uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp index b692a75863326..23e83616e0843 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp @@ -146,7 +146,8 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (!m_block_struct_type.IsValid()) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); const bool omit_empty_base_classes = false; return m_block_struct_type.GetIndexOfChildWithName(name.AsCString(), diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp index 68ba94e82ae66..376555936e89d 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp @@ -203,7 +203,8 @@ llvm::Expected StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( ConstString name) { if (!m_resume_ptr_sp || !m_destroy_ptr_sp) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); if (name == ConstString("resume")) return 0; @@ -212,7 +213,8 @@ StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName( if (name == ConstString("promise_ptr") && m_promise_ptr_sp) return 2; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp index e0d946c2f1ec2..234471d5ba518 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp @@ -31,7 +31,8 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = formatters::ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp index 65be9120483b1..6f1b2ee3fd9e3 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp @@ -41,7 +41,8 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd { return 0; size_t idx = formatters::ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index ede84cb336cdc..358cf7d78fa21 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -316,7 +316,8 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: return 0; if (name == "$$dereference$$") return 1; - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd:: @@ -417,7 +418,8 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd:: return 1; if (name == "$$dereference$$") return 2; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } bool lldb_private::formatters::LibcxxContainerSummaryProvider( diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp index 3caddf689cac9..606f9517ac0c4 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp @@ -135,7 +135,8 @@ lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (name == "Value") return 0; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp index 729d0a6ab8e35..45c80e8e4ec8d 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp @@ -104,11 +104,13 @@ llvm::Expected lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp index 418bcaa3314a5..ea18c02ee6591 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp @@ -109,7 +109,8 @@ class AbstractListFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp index 12186fd1ceba1..fec2d6f29ca54 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp @@ -397,7 +397,8 @@ llvm::Expected lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } return idx; } @@ -496,7 +497,8 @@ llvm::Expected lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_pair_sp) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return m_pair_sp->GetIndexOfChildWithName(name); } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp index 7e1c60886a1cb..41fc704d5886f 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp @@ -177,10 +177,12 @@ llvm::Expected lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_base) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp index 5cdac75483b29..9d55feedd400f 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp @@ -23,7 +23,8 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { if (m_container_sp) return m_container_sp->GetIndexOfChildWithName(name); - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } lldb::ChildCacheState Update() override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp index 1b2e518fd3a45..1c4d8509374f1 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp @@ -148,10 +148,12 @@ llvm::Expected lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp index 90117ead1ee6c..98992b60f86ca 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp @@ -130,10 +130,12 @@ lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::Update() { llvm::Expected lldb_private::formatters:: LibcxxStdSpanSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (!m_start) - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp index 090af594f4c09..270aad5ea9310 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp @@ -23,7 +23,8 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t idx = formatters::ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp index d938294da671d..313664e691c9f 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp @@ -296,7 +296,8 @@ lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } return idx; } @@ -410,7 +411,8 @@ lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd:: return 0; if (name == "second") return 1; - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp index 6e0054784e89f..172df6358789e 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp @@ -127,10 +127,12 @@ llvm::Expected lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start || !m_finish) - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); size_t idx = ExtractIndexFromString(name.GetCString()); if (idx == UINT32_MAX) { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp index 04cf8747fc387..4dfb79e6f826a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp @@ -205,7 +205,8 @@ class VariantFrontEnd : public SyntheticChildrenFrontEnd { llvm::Expected GetIndexOfChildWithName(ConstString name) override { size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return index; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp index b35961c5f9cec..4a3eca05b0a08 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp @@ -167,10 +167,12 @@ llvm::Expected lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_start || !m_finish) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) { - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } return index; } @@ -268,12 +270,14 @@ llvm::Expected lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd:: GetIndexOfChildWithName(ConstString name) { if (!m_count || !m_base_data_address) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); const char *item_name = name.GetCString(); uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp index 8e686044b95cc..02113baf64b8c 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp @@ -153,7 +153,8 @@ LibstdcppMapIteratorSyntheticFrontEnd::GetIndexOfChildWithName( return 0; if (name == "second") return 1; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * @@ -232,7 +233,8 @@ llvm::Expected VectorIteratorSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { if (name == "item") return 0; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } bool lldb_private::formatters::LibStdcppStringSummaryProvider( @@ -417,7 +419,8 @@ LibStdcppSharedPtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { return 0; if (name == "object" || name == "$$dereference$$") return 1; - return llvm::createStringError("Type has no child named '%s'",name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } SyntheticChildrenFrontEnd * diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp index 75d0dda6492de..cae5aa379b245 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp @@ -100,7 +100,8 @@ llvm::Expected LibStdcppTupleSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { size_t index = formatters::ExtractIndexFromString(name.GetCString()); if (index == UINT32_MAX) { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } return index; } diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp index f9fc9c10523b8..b47ff579b6a5e 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp @@ -147,7 +147,8 @@ LibStdcppUniquePtrSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) { return 1; if (name == "obj" || name == "object" || name == "$$dereference$$") return 2; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } bool LibStdcppUniquePtrSyntheticFrontEnd::GetSummary( diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp index ae69a92dca5ab..72e4d0fe2aa21 100644 --- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp +++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp @@ -1050,7 +1050,8 @@ class ObjCClassSyntheticChildrenFrontEnd : public SyntheticChildrenFrontEnd { bool MightHaveChildren() override { return false; } llvm::Expected GetIndexOfChildWithName(ConstString name) override { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } }; diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp index 2e79ab62b2d53..5e72bd5a6bab6 100644 --- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp @@ -532,7 +532,8 @@ llvm::Expected lldb_private::formatters::NSArrayMSyntheticFrontEndBase:: size_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } @@ -619,7 +620,8 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd< uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp index 51df1329fbe45..b04b4610a0bf4 100644 --- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp @@ -591,7 +591,8 @@ llvm::Expected lldb_private::formatters:: uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } @@ -725,7 +726,8 @@ llvm::Expected lldb_private::formatters:: const uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString(), idx); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString(), idx); return idx; } @@ -858,7 +860,8 @@ lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd:: uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } @@ -970,7 +973,8 @@ llvm::Expected lldb_private::formatters:: static const ConstString g_zero("[0]"); if (name == g_zero) return 0; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } llvm::Expected lldb_private::formatters:: @@ -1058,7 +1062,8 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd< uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } @@ -1216,7 +1221,8 @@ llvm::Expected lldb_private::formatters::Foundation1100:: uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSError.cpp b/lldb/source/Plugins/Language/ObjC/NSError.cpp index 07a7d29bb153c..0152c3125f1e1 100644 --- a/lldb/source/Plugins/Language/ObjC/NSError.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSError.cpp @@ -169,7 +169,8 @@ class NSErrorSyntheticFrontEnd : public SyntheticChildrenFrontEnd { static ConstString g_userInfo("_userInfo"); if (name == g_userInfo) return 0; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } private: diff --git a/lldb/source/Plugins/Language/ObjC/NSException.cpp b/lldb/source/Plugins/Language/ObjC/NSException.cpp index de23c03576545..e27c7e0e97bef 100644 --- a/lldb/source/Plugins/Language/ObjC/NSException.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSException.cpp @@ -162,7 +162,8 @@ class NSExceptionSyntheticFrontEnd : public SyntheticChildrenFrontEnd { if (name == g_reason) return 1; if (name == g_userInfo) return 2; if (name == g_reserved) return 3; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } private: diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp index 3e859310a32a8..93d852b7e748c 100644 --- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp @@ -131,7 +131,8 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd { uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp index b11ab4fe54232..71674ea63f4ca 100644 --- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp @@ -393,7 +393,8 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName( uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } @@ -527,7 +528,8 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName( const uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } @@ -662,7 +664,8 @@ llvm::Expected lldb_private::formatters::GenericNSSetMSyntheticFrontEnd< uint32_t idx = ExtractIndexFromString(item_name); if (idx == UINT32_MAX || (idx < UINT32_MAX && idx >= CalculateNumChildrenIgnoringErrors())) - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); return idx; } diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp index 8eddae3eb3758..4d6220c48137f 100644 --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp @@ -7159,7 +7159,8 @@ TypeSystemClang::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, break; } } - return llvm::createStringError("Type has no child named '%s'", name.str().c_str()); + return llvm::createStringError("Type has no child named '%s'", + name.str().c_str()); } CompilerType diff --git a/lldb/source/Symbol/CompilerType.cpp b/lldb/source/Symbol/CompilerType.cpp index 67eb7021081e4..90c4dbf0c6206 100644 --- a/lldb/source/Symbol/CompilerType.cpp +++ b/lldb/source/Symbol/CompilerType.cpp @@ -1031,7 +1031,8 @@ CompilerType::GetIndexOfChildWithName(llvm::StringRef name, return type_system_sp->GetIndexOfChildWithName(m_type, name, omit_empty_base_classes); } - return llvm::createStringError("Type has no child named '%s'", name.str().c_str()); + return llvm::createStringError("Type has no child named '%s'", + name.str().c_str()); } // Dumping types diff --git a/lldb/source/ValueObject/ValueObjectRegister.cpp b/lldb/source/ValueObject/ValueObjectRegister.cpp index 288ccff2db576..97aeaa8bebe63 100644 --- a/lldb/source/ValueObject/ValueObjectRegister.cpp +++ b/lldb/source/ValueObject/ValueObjectRegister.cpp @@ -146,7 +146,8 @@ ValueObjectRegisterSet::GetIndexOfChildWithName(llvm::StringRef name) { if (reg_info != nullptr) return reg_info->kinds[eRegisterKindLLDB]; } - return llvm::createStringError("Type has no child named '%s'", name.str().c_str()); + return llvm::createStringError("Type has no child named '%s'", + name.str().c_str()); } #pragma mark - diff --git a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp index f9c939591454b..df774284e4c1b 100644 --- a/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/ValueObject/ValueObjectSyntheticFilter.cpp @@ -351,11 +351,13 @@ ValueObjectSynthetic::GetIndexOfChildWithName(llvm::StringRef name_ref) { m_name_toindex[name.GetCString()] = *index_or_err; return *index_or_err; } else if (!found_index && m_synth_filter_up == nullptr) { - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } else if (found_index) return *found_index; - return llvm::createStringError("Type has no child named '%s'", name.AsCString()); + return llvm::createStringError("Type has no child named '%s'", + name.AsCString()); } bool ValueObjectSynthetic::IsInScope() { return m_parent->IsInScope(); }