Author: Richard Smith Date: 2020-11-11T17:55:47-08:00 New Revision: 856fd98a176240470dcc2b8ad54b5c17ef6a75b3
URL: https://github.com/llvm/llvm-project/commit/856fd98a176240470dcc2b8ad54b5c17ef6a75b3 DIFF: https://github.com/llvm/llvm-project/commit/856fd98a176240470dcc2b8ad54b5c17ef6a75b3.diff LOG: Generalize regex matching std::string variants to compensate for recent improvements to Clang's type printing. Added: Modified: lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp Removed: ################################################################################ diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index 83a140ebd5e7..7bc5b194514a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -461,52 +461,52 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxStringSummaryProviderASCII, "std::string summary provider", - ConstString("^std::__[[:alnum:]]+::string$"), stl_summary_flags, + 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<char, " - "std::__[[:alnum:]]+::char_traits<char>, " - "std::__[[:alnum:]]+::allocator<char> >$"), + ConstString("^std::(__[[:alnum:]]+::)?basic_string<char(, " + "std::(__[[:alnum:]]+::)?char_traits<char>, " + "std::(__[[:alnum:]]+::)?allocator<char> )?>$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxStringSummaryProviderASCII, "std::string summary provider", - ConstString("^std::__[[:alnum:]]+::basic_string<unsigned char, " - "std::__[[:alnum:]]+::char_traits<unsigned char>, " - "std::__[[:alnum:]]+::allocator<unsigned char> >$"), + ConstString("^std::(__[[:alnum:]]+::)?basic_string<unsigned char(, " + "std::(__[[:alnum:]]+::)?char_traits<unsigned char>, " + "std::(__[[:alnum:]]+::)?allocator<unsigned char> )?>$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxStringSummaryProviderUTF16, "std::u16string summary provider", ConstString( - "^std::__[[:alnum:]]+::basic_string<char16_t, " - "std::__[[:alnum:]]+::char_traits<char16_t>, " - "std::__[[:alnum:]]+::allocator<char16_t> >$"), + "^std::(__[[:alnum:]]+::)?basic_string<char16_t(, " + "std::(__[[:alnum:]]+::)?char_traits<char16_t>, " + "std::(__[[:alnum:]]+::)?allocator<char16_t> )?>$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxStringSummaryProviderUTF32, "std::u32string summary provider", ConstString( - "^std::__[[:alnum:]]+::basic_string<char32_t, " - "std::__[[:alnum:]]+::char_traits<char32_t>, " - "std::__[[:alnum:]]+::allocator<char32_t> >$"), + "^std::(__[[:alnum:]]+::)?basic_string<char32_t(, " + "std::(__[[:alnum:]]+::)?char_traits<char32_t>, " + "std::(__[[:alnum:]]+::)?allocator<char32_t> )?>$"), stl_summary_flags, true); AddCXXSummary(cpp_category_sp, lldb_private::formatters::LibcxxWStringSummaryProvider, "std::wstring summary provider", - ConstString("^std::__[[:alnum:]]+::wstring$"), + 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<wchar_t, " - "std::__[[:alnum:]]+::char_traits<wchar_t>, " - "std::__[[:alnum:]]+::allocator<wchar_t> >$"), + ConstString("^std::(__[[:alnum:]]+::)?basic_string<wchar_t(, " + "std::(__[[:alnum:]]+::)?char_traits<wchar_t>, " + "std::(__[[:alnum:]]+::)?allocator<wchar_t> )?>$"), stl_summary_flags, true); SyntheticChildren::Flags stl_synth_flags; @@ -787,6 +787,10 @@ static void LoadLibStdcppFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { ConstString("std::__cxx11::basic_string<char, std::char_traits<char>, " "std::allocator<char> >"), cxx11_string_summary_sp); + cpp_category_sp->GetTypeSummariesContainer()->Add( + ConstString("std::basic_string<unsigned char, std::char_traits<unsigned char>, " + "std::allocator<unsigned char> >"), + cxx11_string_summary_sp); cpp_category_sp->GetTypeSummariesContainer()->Add( ConstString("std::__cxx11::basic_string<unsigned char, std::char_traits<unsigned char>, " "std::allocator<unsigned char> >"), _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits