Index: lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp =================================================================== --- lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -419,60 +419,49 @@ .SetHideItemNames(false); #ifndef LLDB_DISABLE_PYTHON - lldb::TypeSummaryImplSP std_string_summary_sp(new CXXFunctionSummaryFormat( - stl_summary_flags, - lldb_private::formatters::LibcxxStringSummaryProviderASCII, - "std::string summary provider")); - lldb::TypeSummaryImplSP std_stringu16_summary_sp(new CXXFunctionSummaryFormat( - stl_summary_flags, - lldb_private::formatters::LibcxxStringSummaryProviderUTF16, - "std::u16string summary provider")); - lldb::TypeSummaryImplSP std_stringu32_summary_sp(new CXXFunctionSummaryFormat( - stl_summary_flags, - lldb_private::formatters::LibcxxStringSummaryProviderUTF32, - "std::u32string summary provider")); - lldb::TypeSummaryImplSP std_wstring_summary_sp(new CXXFunctionSummaryFormat( - stl_summary_flags, lldb_private::formatters::LibcxxWStringSummaryProvider, - "std::wstring summary provider")); + AddCXXSummary(cpp_category_sp, + lldb_private::formatters::LibcxxStringSummaryProviderASCII, + "std::string summary provider", + ConstString("^std::__[[:alnum:]]+::string$"), stl_summary_flags, + true); + AddCXXSummary(cpp_category_sp, + lldb_private::formatters::LibcxxStringSummaryProviderASCII, + "std::string summary provider", + ConstString("^std::__[[:alnum:]]+::basic_string, " + "std::__[[:alnum:]]+::allocator >$"), + stl_summary_flags, true); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString("std::__1::string"), std_string_summary_sp); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString("std::__ndk1::string"), std_string_summary_sp); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString("std::__1::basic_string, " - "std::__1::allocator >"), - std_string_summary_sp); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString( - "std::__1::basic_string, " - "std::__1::allocator >"), - std_stringu16_summary_sp); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString( - "std::__1::basic_string, " - "std::__1::allocator >"), - std_stringu32_summary_sp); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString("std::__ndk1::basic_string, " - "std::__ndk1::allocator >"), - std_string_summary_sp); + AddCXXSummary(cpp_category_sp, + lldb_private::formatters::LibcxxStringSummaryProviderUTF16, + "std::u16string summary provider", + ConstString( + "^std::__[[:alnum:]]+::basic_string, " + "std::__[[:alnum:]]+::allocator >$"), + stl_summary_flags, true); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString("std::__1::wstring"), std_wstring_summary_sp); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString("std::__ndk1::wstring"), std_wstring_summary_sp); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString("std::__1::basic_string, " - "std::__1::allocator >"), - std_wstring_summary_sp); - cpp_category_sp->GetTypeSummariesContainer()->Add( - ConstString("std::__ndk1::basic_string, " - "std::__ndk1::allocator >"), - std_wstring_summary_sp); + AddCXXSummary(cpp_category_sp, + lldb_private::formatters::LibcxxStringSummaryProviderUTF32, + "std::u32string summary provider", + ConstString( + "^std::__[[:alnum:]]+::basic_string, " + "std::__[[:alnum:]]+::allocator >$"), + stl_summary_flags, true); + + AddCXXSummary(cpp_category_sp, + lldb_private::formatters::LibcxxWStringSummaryProvider, + "std::wstring summary provider", + ConstString("^std::__[[:alnum:]]+::wstring$"), + stl_summary_flags, true); + AddCXXSummary(cpp_category_sp, + lldb_private::formatters::LibcxxWStringSummaryProvider, + "std::wstring summary provider", + ConstString("^std::__[[:alnum:]]+::basic_string, " + "std::__[[:alnum:]]+::allocator >$"), + stl_summary_flags, true); SyntheticChildren::Flags stl_synth_flags; stl_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences( @@ -484,54 +473,55 @@ cpp_category_sp, lldb_private::formatters::LibcxxBitsetSyntheticFrontEndCreator, "libc++ std::bitset synthetic children", - ConstString("^std::__(ndk)?1::bitset<.+>(( )?&)?$"), stl_deref_flags, + ConstString("^std::__[[:alnum:]]+::bitset<.+>(( )?&)?$"), stl_deref_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxStdVectorSyntheticFrontEndCreator, "libc++ std::vector synthetic children", - ConstString("^std::__(ndk)?1::vector<.+>(( )?&)?$"), stl_deref_flags, + ConstString("^std::__[[:alnum:]]+::vector<.+>(( )?&)?$"), stl_deref_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxStdForwardListSyntheticFrontEndCreator, "libc++ std::forward_list synthetic children", - ConstString("^std::__(ndk)?1::forward_list<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::forward_list<.+>(( )?&)?$"), stl_synth_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxStdListSyntheticFrontEndCreator, "libc++ std::list synthetic children", - ConstString("^std::__(ndk)?1::list<.+>(( )?&)?$"), stl_synth_flags, true); + ConstString("^std::__[[:alnum:]]+::list<.+>(( )?&)?$"), stl_synth_flags, + true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator, "libc++ std::map synthetic children", - ConstString("^std::__(ndk)?1::map<.+> >(( )?&)?$"), stl_synth_flags, + ConstString("^std::__[[:alnum:]]+::map<.+> >(( )?&)?$"), stl_synth_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator, "libc++ std::set synthetic children", - ConstString("^std::__(ndk)?1::set<.+> >(( )?&)?$"), stl_deref_flags, + ConstString("^std::__[[:alnum:]]+::set<.+> >(( )?&)?$"), stl_deref_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator, "libc++ std::multiset synthetic children", - ConstString("^std::__(ndk)?1::multiset<.+> >(( )?&)?$"), stl_deref_flags, - true); + ConstString("^std::__[[:alnum:]]+::multiset<.+> >(( )?&)?$"), + stl_deref_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator, "libc++ std::multimap synthetic children", - ConstString("^std::__(ndk)?1::multimap<.+> >(( )?&)?$"), stl_synth_flags, - true); + ConstString("^std::__[[:alnum:]]+::multimap<.+> >(( )?&)?$"), + stl_synth_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEndCreator, "libc++ std::unordered containers synthetic children", - ConstString("^(std::__(ndk)?1::)unordered_(multi)?(map|set)<.+> >$"), + ConstString("^(std::__[[:alnum:]]+::)unordered_(multi)?(map|set)<.+> >$"), stl_synth_flags, true); AddCXXSynthetic( cpp_category_sp, @@ -541,29 +531,29 @@ true); AddCXXSynthetic(cpp_category_sp, LibcxxQueueFrontEndCreator, "libc++ std::queue synthetic children", - ConstString("^std::__(ndk)?1::queue<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::queue<.+>(( )?&)?$"), stl_synth_flags, true); AddCXXSynthetic(cpp_category_sp, LibcxxTupleFrontEndCreator, "libc++ std::tuple synthetic children", - ConstString("^std::__(ndk)?1::tuple<.*>(( )?&)?$"), stl_synth_flags, - true); + ConstString("^std::__[[:alnum:]]+::tuple<.*>(( )?&)?$"), + stl_synth_flags, true); AddCXXSynthetic(cpp_category_sp, LibcxxOptionalFrontEndCreator, "libc++ std::optional synthetic children", - ConstString("^std::__(ndk)?1::optional<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::optional<.+>(( )?&)?$"), stl_synth_flags, true); AddCXXSynthetic(cpp_category_sp, LibcxxVariantFrontEndCreator, "libc++ std::variant synthetic children", - ConstString("^std::__(ndk)?1::variant<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::variant<.+>(( )?&)?$"), stl_synth_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxAtomicSyntheticFrontEndCreator, "libc++ std::atomic synthetic children", - ConstString("^std::__(ndk)?1::atomic<.+>$"), stl_synth_flags, true); + ConstString("^std::__[[:alnum:]]+::atomic<.+>$"), stl_synth_flags, true); cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add( RegularExpressionSP(new RegularExpression( - llvm::StringRef("^(std::__(ndk)?1::)deque<.+>(( )?&)?$"))), + llvm::StringRef("^(std::__[[:alnum:]]+::)deque<.+>(( )?&)?$"))), SyntheticChildrenSP(new ScriptedSyntheticChildren( stl_synth_flags, "lldb.formatters.cpp.libcxx.stddeque_SynthProvider"))); @@ -572,94 +562,96 @@ cpp_category_sp, lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEndCreator, "shared_ptr synthetic children", - ConstString("^(std::__(ndk)?1::)shared_ptr<.+>(( )?&)?$"), + ConstString("^(std::__[[:alnum:]]+::)shared_ptr<.+>(( )?&)?$"), stl_synth_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEndCreator, "weak_ptr synthetic children", - ConstString("^(std::__(ndk)?1::)weak_ptr<.+>(( )?&)?$"), stl_synth_flags, - true); + ConstString("^(std::__[[:alnum:]]+::)weak_ptr<.+>(( )?&)?$"), + stl_synth_flags, true); AddCXXSummary( cpp_category_sp, lldb_private::formatters::LibcxxFunctionSummaryProvider, "libc++ std::function summary provider", - ConstString("^std::__(ndk)?1::function<.+>$"), stl_summary_flags, true); + ConstString("^std::__[[:alnum:]]+::function<.+>$"), stl_summary_flags, + true); stl_summary_flags.SetDontShowChildren(false); stl_summary_flags.SetSkipPointers(false); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::bitset summary provider", - ConstString("^std::__(ndk)?1::bitset<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::bitset<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::vector summary provider", - ConstString("^std::__(ndk)?1::vector<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::vector<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::list summary provider", - ConstString("^std::__(ndk)?1::forward_list<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::forward_list<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::list summary provider", - ConstString("^std::__(ndk)?1::list<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::list<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::map summary provider", - ConstString("^std::__(ndk)?1::map<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::map<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::deque summary provider", - ConstString("^std::__(ndk)?1::deque<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::deque<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::queue summary provider", - ConstString("^std::__(ndk)?1::queue<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::queue<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::set summary provider", - ConstString("^std::__(ndk)?1::set<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::set<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::multiset summary provider", - ConstString("^std::__(ndk)?1::multiset<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::multiset<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::multimap summary provider", - ConstString("^std::__(ndk)?1::multimap<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::multimap<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary( cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::unordered containers summary provider", - ConstString("^(std::__(ndk)?1::)unordered_(multi)?(map|set)<.+> >$"), + ConstString("^(std::__[[:alnum:]]+::)unordered_(multi)?(map|set)<.+> >$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, LibcxxContainerSummaryProvider, "libc++ std::tuple summary provider", - ConstString("^std::__(ndk)?1::tuple<.*>(( )?&)?$"), stl_summary_flags, - true); + ConstString("^std::__[[:alnum:]]+::tuple<.*>(( )?&)?$"), + stl_summary_flags, true); AddCXXSummary( cpp_category_sp, lldb_private::formatters::LibCxxAtomicSummaryProvider, "libc++ std::atomic summary provider", - ConstString("^std::__(ndk)?1::atomic<.+>$"), stl_summary_flags, true); + ConstString("^std::__[[:alnum:]]+::atomic<.+>$"), stl_summary_flags, + true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxOptionalSummaryProvider, "libc++ std::optional summary provider", - ConstString("^std::__(ndk)?1::optional<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::optional<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxVariantSummaryProvider, "libc++ std::variant summary provider", - ConstString("^std::__(ndk)?1::variant<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::variant<.+>(( )?&)?$"), stl_summary_flags, true); stl_summary_flags.SetSkipPointers(true); @@ -667,25 +659,26 @@ AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxSmartPointerSummaryProvider, "libc++ std::shared_ptr summary provider", - ConstString("^std::__(ndk)?1::shared_ptr<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::shared_ptr<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxSmartPointerSummaryProvider, "libc++ std::weak_ptr summary provider", - ConstString("^std::__(ndk)?1::weak_ptr<.+>(( )?&)?$"), + ConstString("^std::__[[:alnum:]]+::weak_ptr<.+>(( )?&)?$"), stl_summary_flags, true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibCxxVectorIteratorSyntheticFrontEndCreator, "std::vector iterator synthetic children", - ConstString("^std::__(ndk)?1::__wrap_iter<.+>$"), stl_synth_flags, true); + ConstString("^std::__[[:alnum:]]+::__wrap_iter<.+>$"), stl_synth_flags, + true); AddCXXSynthetic( cpp_category_sp, lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEndCreator, "std::map iterator synthetic children", - ConstString("^std::__(ndk)?1::__map_iterator<.+>$"), stl_synth_flags, + ConstString("^std::__[[:alnum:]]+::__map_iterator<.+>$"), stl_synth_flags, true); #endif } @@ -953,8 +946,8 @@ llvm::call_once(g_initialize, [this]() -> void { DataVisualization::Categories::GetCategory(GetPluginName(), g_category); if (g_category) { - LoadLibCxxFormatters(g_category); LoadLibStdcppFormatters(g_category); + LoadLibCxxFormatters(g_category); LoadSystemFormatters(g_category); } });