https://github.com/Michael137 updated https://github.com/llvm/llvm-project/pull/147140
>From 632a9886230e0d358c6f3be1df8a580dc364f42b Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Sat, 5 Jul 2025 11:33:04 +0100 Subject: [PATCH 1/3] [lldb][Formatters] Use container summary helper for libstdc++ formatters This re-uses the `LibCxxContainerSummaryProvider` for the libstdc++ formatters. There's a couple of containers that aren't making use of it for libstdc++. This patch will make it easier to review when adding those in the future. --- .../lldb/DataFormatters/FormattersHelpers.h | 3 + .../DataFormatters/FormattersHelpers.cpp | 6 + .../Language/CPlusPlus/CPlusPlusLanguage.cpp | 116 ++++++++++-------- .../Plugins/Language/CPlusPlus/LibCxx.cpp | 6 - .../Plugins/Language/CPlusPlus/LibCxx.h | 3 - 5 files changed, 72 insertions(+), 62 deletions(-) diff --git a/lldb/include/lldb/DataFormatters/FormattersHelpers.h b/lldb/include/lldb/DataFormatters/FormattersHelpers.h index 97d367afc65d7..de603eda8af50 100644 --- a/lldb/include/lldb/DataFormatters/FormattersHelpers.h +++ b/lldb/include/lldb/DataFormatters/FormattersHelpers.h @@ -60,6 +60,9 @@ std::optional<size_t> ExtractIndexFromString(const char *item_name); void DumpCxxSmartPtrPointerSummary(Stream &stream, ValueObject &ptr, const TypeSummaryOptions &options); +bool CxxContainerSummaryProvider(ValueObject &valobj, Stream &stream, + const TypeSummaryOptions &options); + Address GetArrayAddressOrPointerValue(ValueObject &valobj); time_t GetOSXEpoch(); diff --git a/lldb/source/DataFormatters/FormattersHelpers.cpp b/lldb/source/DataFormatters/FormattersHelpers.cpp index 81c76b06fc47a..db735f050e3cb 100644 --- a/lldb/source/DataFormatters/FormattersHelpers.cpp +++ b/lldb/source/DataFormatters/FormattersHelpers.cpp @@ -145,3 +145,9 @@ void lldb_private::formatters::DumpCxxSmartPtrPointerSummary( ValueObject::PrintableRepresentationSpecialCases::eDisable, false)) stream.Printf("ptr = 0x%" PRIx64, ptr.GetValueAsUnsigned(0)); } + +bool lldb_private::formatters::CxxContainerSummaryProvider( + ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options) { + return FormatEntity::FormatStringRef("size=${svar%#}", stream, nullptr, + nullptr, nullptr, &valobj, false, false); +} diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index 77047c077c678..38898ccb6e55e 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -1016,15 +1016,15 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { stl_summary_flags.SetDontShowChildren(false); stl_summary_flags.SetSkipPointers(false); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::bitset summary provider", "^std::__[[:alnum:]]+::bitset<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::vector summary provider", "^std::__[[:alnum:]]+::vector<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::valarray summary provider", "^std::__[[:alnum:]]+::valarray<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, @@ -1033,16 +1033,16 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { "^std::__[[:alnum:]]+::slice_array<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ summary provider for the valarray proxy arrays", "^std::__[[:alnum:]]+::(gslice|mask|indirect)_array<.+>$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::list summary provider", "^std::__[[:alnum:]]+::forward_list<.+>$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::list summary provider", // A POSIX variant of: "^std::__(?!cxx11:)[[:alnum:]]+::list<.+>$" // so that it does not clash with: "^std::(__cxx11::)?list<.+>$" @@ -1050,35 +1050,35 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { "cxx11[[:alnum:]])[[:alnum:]]*::list<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::map summary provider", "^std::__[[:alnum:]]+::map<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::deque summary provider", "^std::__[[:alnum:]]+::deque<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::queue summary provider", "^std::__[[:alnum:]]+::queue<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::set summary provider", "^std::__[[:alnum:]]+::set<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::multiset summary provider", "^std::__[[:alnum:]]+::multiset<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::multimap summary provider", "^std::__[[:alnum:]]+::multimap<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::unordered containers summary provider", "^std::__[[:alnum:]]+::unordered_(multi)?(map|set)<.+> >$", stl_summary_flags, true); - AddCXXSummary(cpp_category_sp, LibcxxContainerSummaryProvider, + AddCXXSummary(cpp_category_sp, CxxContainerSummaryProvider, "libc++ std::tuple summary provider", "^std::__[[:alnum:]]+::tuple<.*>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, @@ -1094,7 +1094,7 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { "libc++ std::variant summary provider", "^std::__[[:alnum:]]+::variant<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::CxxContainerSummaryProvider, "libc++ std::span summary provider", "^std::__[[:alnum:]]+::span<.+>$", stl_summary_flags, true); @@ -1456,44 +1456,54 @@ static void LoadLibStdcppFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { stl_summary_flags.SetDontShowChildren(false); stl_summary_flags.SetSkipPointers(false); - cpp_category_sp->AddTypeSummary("^std::(__debug::)?bitset<.+>(( )?&)?$", - eFormatterMatchRegex, - TypeSummaryImplSP(new StringSummaryFormat( - stl_summary_flags, "size=${svar%#}"))); - cpp_category_sp->AddTypeSummary("^std::(__debug::)?vector<.+>(( )?&)?$", - eFormatterMatchRegex, - TypeSummaryImplSP(new StringSummaryFormat( - stl_summary_flags, "size=${svar%#}"))); - cpp_category_sp->AddTypeSummary("^std::(__debug::)?map<.+> >(( )?&)?$", - eFormatterMatchRegex, - TypeSummaryImplSP(new StringSummaryFormat( - stl_summary_flags, "size=${svar%#}"))); - cpp_category_sp->AddTypeSummary("^std::(__debug::)?set<.+> >(( )?&)?$", - eFormatterMatchRegex, - TypeSummaryImplSP(new StringSummaryFormat( - stl_summary_flags, "size=${svar%#}"))); - cpp_category_sp->AddTypeSummary("^std::(__debug::)?deque<.+>(( )?&)?$", - eFormatterMatchRegex, - TypeSummaryImplSP(new StringSummaryFormat( - stl_summary_flags, "size=${svar%#}"))); - cpp_category_sp->AddTypeSummary("^std::(__debug::)?multimap<.+> >(( )?&)?$", - eFormatterMatchRegex, - TypeSummaryImplSP(new StringSummaryFormat( - stl_summary_flags, "size=${svar%#}"))); - cpp_category_sp->AddTypeSummary("^std::(__debug::)?multiset<.+> >(( )?&)?$", - eFormatterMatchRegex, - TypeSummaryImplSP(new StringSummaryFormat( - stl_summary_flags, "size=${svar%#}"))); - cpp_category_sp->AddTypeSummary( - "^std::(__debug::)?unordered_(multi)?(map|set)<.+> >$", - eFormatterMatchRegex, - TypeSummaryImplSP( - new StringSummaryFormat(stl_summary_flags, "size=${svar%#}"))); - cpp_category_sp->AddTypeSummary( - "^std::((__debug::)?|(__cxx11::)?)list<.+>(( )?&)?$", - eFormatterMatchRegex, - TypeSummaryImplSP( - new StringSummaryFormat(stl_summary_flags, "size=${svar%#}"))); + + AddCXXSummary( + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std::bitset summary provider", + "^std::(__debug::)?bitset<.+>(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std::vector summary provider", + "^std::(__debug::)?vector<.+>(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std::map summary provider", + "^std::(__debug::)?map<.+> >(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std::set summary provider", + "^std::(__debug::)?set<.+> >(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std::deque summary provider", + "^std::(__debug::)?deque<.+>(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std::multimap summary provider", + "^std::(__debug::)?multimap<.+> >(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std::multiset summary provider", + "^std::(__debug::)?multiset<.+> >(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary(cpp_category_sp, + lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std unordered container summary provider", + "^std::(__debug::)?unordered_(multi)?(map|set)<.+> >$", + stl_summary_flags, true); + + AddCXXSummary(cpp_category_sp, + lldb_private::formatters::CxxContainerSummaryProvider, + "libstdc++ std::list summary provider", + "^std::((__debug::)?|(__cxx11::)?)list<.+>(( )?&)?$", + stl_summary_flags, true); + cpp_category_sp->AddTypeSummary( "^std::((__debug::)?|(__cxx11::)?)forward_list<.+>(( )?&)?$", eFormatterMatchRegex, diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index 104521b8c3e71..9ee4e2ab0490e 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -410,12 +410,6 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd:: name.AsCString()); } -bool lldb_private::formatters::LibcxxContainerSummaryProvider( - ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options) { - return FormatEntity::FormatStringRef("size=${svar%#}", stream, nullptr, - nullptr, nullptr, &valobj, false, false); -} - /// The field layout in a libc++ string (cap, side, data or data, size, cap). namespace { enum class StringLayout { CSD, DSC }; diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h index 56501302d116f..0c1f120ea708a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h @@ -81,9 +81,6 @@ SyntheticChildrenFrontEnd * LibcxxVectorBoolSyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP); -bool LibcxxContainerSummaryProvider(ValueObject &valobj, Stream &stream, - const TypeSummaryOptions &options); - /// Formatter for libc++ std::span<>. bool LibcxxSpanSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options); >From 7fe905d25dffcb0e6f7aabefb710e02b55966ff6 Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Mon, 7 Jul 2025 08:49:22 +0100 Subject: [PATCH 2/3] fixup! ContainerSummaryProvider -> ContainerSizeSummaryProvider --- .../lldb/DataFormatters/FormattersHelpers.h | 2 +- .../DataFormatters/FormattersHelpers.cpp | 2 +- .../Language/CPlusPlus/CPlusPlusLanguage.cpp | 48 +++++++++---------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/lldb/include/lldb/DataFormatters/FormattersHelpers.h b/lldb/include/lldb/DataFormatters/FormattersHelpers.h index de603eda8af50..c7b25fbb79c63 100644 --- a/lldb/include/lldb/DataFormatters/FormattersHelpers.h +++ b/lldb/include/lldb/DataFormatters/FormattersHelpers.h @@ -60,7 +60,7 @@ std::optional<size_t> ExtractIndexFromString(const char *item_name); void DumpCxxSmartPtrPointerSummary(Stream &stream, ValueObject &ptr, const TypeSummaryOptions &options); -bool CxxContainerSummaryProvider(ValueObject &valobj, Stream &stream, +bool ContainerSizeSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options); Address GetArrayAddressOrPointerValue(ValueObject &valobj); diff --git a/lldb/source/DataFormatters/FormattersHelpers.cpp b/lldb/source/DataFormatters/FormattersHelpers.cpp index db735f050e3cb..028fc5da73dc0 100644 --- a/lldb/source/DataFormatters/FormattersHelpers.cpp +++ b/lldb/source/DataFormatters/FormattersHelpers.cpp @@ -146,7 +146,7 @@ void lldb_private::formatters::DumpCxxSmartPtrPointerSummary( stream.Printf("ptr = 0x%" PRIx64, ptr.GetValueAsUnsigned(0)); } -bool lldb_private::formatters::CxxContainerSummaryProvider( +bool lldb_private::formatters::ContainerSizeSummaryProvider( ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options) { return FormatEntity::FormatStringRef("size=${svar%#}", stream, nullptr, nullptr, nullptr, &valobj, false, false); diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index 38898ccb6e55e..327ab3ab9edd5 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -1016,15 +1016,15 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { stl_summary_flags.SetDontShowChildren(false); stl_summary_flags.SetSkipPointers(false); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::bitset summary provider", "^std::__[[:alnum:]]+::bitset<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::vector summary provider", "^std::__[[:alnum:]]+::vector<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::valarray summary provider", "^std::__[[:alnum:]]+::valarray<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, @@ -1033,16 +1033,16 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { "^std::__[[:alnum:]]+::slice_array<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ summary provider for the valarray proxy arrays", "^std::__[[:alnum:]]+::(gslice|mask|indirect)_array<.+>$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::list summary provider", "^std::__[[:alnum:]]+::forward_list<.+>$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::list summary provider", // A POSIX variant of: "^std::__(?!cxx11:)[[:alnum:]]+::list<.+>$" // so that it does not clash with: "^std::(__cxx11::)?list<.+>$" @@ -1050,35 +1050,35 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { "cxx11[[:alnum:]])[[:alnum:]]*::list<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::map summary provider", "^std::__[[:alnum:]]+::map<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::deque summary provider", "^std::__[[:alnum:]]+::deque<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::queue summary provider", "^std::__[[:alnum:]]+::queue<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::set summary provider", "^std::__[[:alnum:]]+::set<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::multiset summary provider", "^std::__[[:alnum:]]+::multiset<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::multimap summary provider", "^std::__[[:alnum:]]+::multimap<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::unordered containers summary provider", "^std::__[[:alnum:]]+::unordered_(multi)?(map|set)<.+> >$", stl_summary_flags, true); - AddCXXSummary(cpp_category_sp, CxxContainerSummaryProvider, + AddCXXSummary(cpp_category_sp, ContainerSizeSummaryProvider, "libc++ std::tuple summary provider", "^std::__[[:alnum:]]+::tuple<.*>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, @@ -1094,7 +1094,7 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { "libc++ std::variant summary provider", "^std::__[[:alnum:]]+::variant<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::span summary provider", "^std::__[[:alnum:]]+::span<.+>$", stl_summary_flags, true); @@ -1458,48 +1458,48 @@ static void LoadLibStdcppFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { stl_summary_flags.SetSkipPointers(false); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std::bitset summary provider", "^std::(__debug::)?bitset<.+>(( )?&)?$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std::vector summary provider", "^std::(__debug::)?vector<.+>(( )?&)?$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std::map summary provider", "^std::(__debug::)?map<.+> >(( )?&)?$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std::set summary provider", "^std::(__debug::)?set<.+> >(( )?&)?$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std::deque summary provider", "^std::(__debug::)?deque<.+>(( )?&)?$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std::multimap summary provider", "^std::(__debug::)?multimap<.+> >(( )?&)?$", stl_summary_flags, true); AddCXXSummary( - cpp_category_sp, lldb_private::formatters::CxxContainerSummaryProvider, + cpp_category_sp, lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std::multiset summary provider", "^std::(__debug::)?multiset<.+> >(( )?&)?$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std unordered container summary provider", "^std::(__debug::)?unordered_(multi)?(map|set)<.+> >$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::CxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libstdc++ std::list summary provider", "^std::((__debug::)?|(__cxx11::)?)list<.+>(( )?&)?$", stl_summary_flags, true); >From d6363e56ee53f6a1d1f3fa5fe444ddc9c7b8f2e6 Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Mon, 7 Jul 2025 08:49:32 +0100 Subject: [PATCH 3/3] fixup! clang-format --- lldb/include/lldb/DataFormatters/FormattersHelpers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/include/lldb/DataFormatters/FormattersHelpers.h b/lldb/include/lldb/DataFormatters/FormattersHelpers.h index c7b25fbb79c63..6a47cf37eac64 100644 --- a/lldb/include/lldb/DataFormatters/FormattersHelpers.h +++ b/lldb/include/lldb/DataFormatters/FormattersHelpers.h @@ -61,7 +61,7 @@ void DumpCxxSmartPtrPointerSummary(Stream &stream, ValueObject &ptr, const TypeSummaryOptions &options); bool ContainerSizeSummaryProvider(ValueObject &valobj, Stream &stream, - const TypeSummaryOptions &options); + const TypeSummaryOptions &options); Address GetArrayAddressOrPointerValue(ValueObject &valobj); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits