diff options
author | Michael Buch <michaelbuch12@gmail.com> | 2025-07-07 09:04:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-07 09:04:40 +0100 |
commit | d06956e24afaed103dfbcc67e81257692ae0a8b2 (patch) | |
tree | 07094e57a098038a4000c6df54f826c592b1059d /lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp | |
parent | 7fea83e3143e1a88a096a37ecd13668e2da94b93 (diff) | |
download | llvm-d06956e24afaed103dfbcc67e81257692ae0a8b2.zip llvm-d06956e24afaed103dfbcc67e81257692ae0a8b2.tar.gz llvm-d06956e24afaed103dfbcc67e81257692ae0a8b2.tar.bz2 |
[lldb][Formatters] Use container summary helper for libstdc++ formatters (#147140)
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.
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp')
-rw-r--r-- | lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp | 116 |
1 files changed, 63 insertions, 53 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index 77047c0..327ab3a 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::ContainerSizeSummaryProvider, "libc++ std::bitset summary provider", "^std::__[[:alnum:]]+::bitset<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::vector summary provider", "^std::__[[:alnum:]]+::vector<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + 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::LibcxxContainerSummaryProvider, + 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::LibcxxContainerSummaryProvider, + 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::LibcxxContainerSummaryProvider, + 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::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::map summary provider", "^std::__[[:alnum:]]+::map<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::deque summary provider", "^std::__[[:alnum:]]+::deque<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::queue summary provider", "^std::__[[:alnum:]]+::queue<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::set summary provider", "^std::__[[:alnum:]]+::set<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::multiset summary provider", "^std::__[[:alnum:]]+::multiset<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "libc++ std::multimap summary provider", "^std::__[[:alnum:]]+::multimap<.+>$", stl_summary_flags, true); AddCXXSummary(cpp_category_sp, - lldb_private::formatters::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "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, 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::LibcxxContainerSummaryProvider, + lldb_private::formatters::ContainerSizeSummaryProvider, "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::ContainerSizeSummaryProvider, + "libstdc++ std::bitset summary provider", + "^std::(__debug::)?bitset<.+>(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + 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::ContainerSizeSummaryProvider, + "libstdc++ std::map summary provider", + "^std::(__debug::)?map<.+> >(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + 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::ContainerSizeSummaryProvider, + "libstdc++ std::deque summary provider", + "^std::(__debug::)?deque<.+>(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary( + 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::ContainerSizeSummaryProvider, + "libstdc++ std::multiset summary provider", + "^std::(__debug::)?multiset<.+> >(( )?&)?$", stl_summary_flags, true); + + AddCXXSummary(cpp_category_sp, + 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::ContainerSizeSummaryProvider, + "libstdc++ std::list summary provider", + "^std::((__debug::)?|(__cxx11::)?)list<.+>(( )?&)?$", + stl_summary_flags, true); + cpp_category_sp->AddTypeSummary( "^std::((__debug::)?|(__cxx11::)?)forward_list<.+>(( )?&)?$", eFormatterMatchRegex, |