@@ -792,31 +792,27 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
792
792
lldb_private::formatters::LibcxxStringSummaryProviderASCII,
793
793
" std::string summary provider" ,
794
794
" ^std::__[[:alnum:]]+::basic_string<char, "
795
- " std::__[[:alnum:]]+::char_traits<char>, "
796
- " std::__[[:alnum:]]+::allocator<char> >$" ,
795
+ " std::__[[:alnum:]]+::char_traits<char>,.*>$" ,
797
796
stl_summary_flags, true );
798
797
AddCXXSummary (cpp_category_sp,
799
798
lldb_private::formatters::LibcxxStringSummaryProviderASCII,
800
799
" std::string summary provider" ,
801
800
" ^std::__[[:alnum:]]+::basic_string<unsigned char, "
802
- " std::__[[:alnum:]]+::char_traits<unsigned char>, "
803
- " std::__[[:alnum:]]+::allocator<unsigned char> >$" ,
801
+ " std::__[[:alnum:]]+::char_traits<unsigned char>,.*>$" ,
804
802
stl_summary_flags, true );
805
803
806
804
AddCXXSummary (cpp_category_sp,
807
805
lldb_private::formatters::LibcxxStringSummaryProviderUTF16,
808
806
" std::u16string summary provider" ,
809
807
" ^std::__[[:alnum:]]+::basic_string<char16_t, "
810
- " std::__[[:alnum:]]+::char_traits<char16_t>, "
811
- " std::__[[:alnum:]]+::allocator<char16_t> >$" ,
808
+ " std::__[[:alnum:]]+::char_traits<char16_t>,.*>$" ,
812
809
stl_summary_flags, true );
813
810
814
811
AddCXXSummary (cpp_category_sp,
815
812
lldb_private::formatters::LibcxxStringSummaryProviderUTF32,
816
813
" std::u32string summary provider" ,
817
814
" ^std::__[[:alnum:]]+::basic_string<char32_t, "
818
- " std::__[[:alnum:]]+::char_traits<char32_t>, "
819
- " std::__[[:alnum:]]+::allocator<char32_t> >$" ,
815
+ " std::__[[:alnum:]]+::char_traits<char32_t>,.*>$" ,
820
816
stl_summary_flags, true );
821
817
822
818
AddCXXSummary (cpp_category_sp,
@@ -827,8 +823,7 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
827
823
lldb_private::formatters::LibcxxWStringSummaryProvider,
828
824
" std::wstring summary provider" ,
829
825
" ^std::__[[:alnum:]]+::basic_string<wchar_t, "
830
- " std::__[[:alnum:]]+::char_traits<wchar_t>, "
831
- " std::__[[:alnum:]]+::allocator<wchar_t> >$" ,
826
+ " std::__[[:alnum:]]+::char_traits<wchar_t>,.*>$" ,
832
827
stl_summary_flags, true );
833
828
834
829
AddCXXSummary (cpp_category_sp,
@@ -1344,24 +1339,16 @@ static void RegisterStdStringSummaryProvider(
1344
1339
1345
1340
category_sp->AddTypeSummary (makeSpecifier (string_ty), summary_sp);
1346
1341
1347
- // std::basic_string<char>
1348
1342
category_sp->AddTypeSummary (
1349
1343
makeSpecifier (llvm::formatv (" std::basic_string<{}>" , char_ty).str ()),
1350
1344
summary_sp);
1351
- // std::basic_string<char,std::char_traits<char>,std::allocator<char> >
1352
- category_sp->AddTypeSummary (
1353
- makeSpecifier (llvm::formatv (" std::basic_string<{0},std::char_traits<{0}>,"
1354
- " std::allocator<{0}> >" ,
1355
- char_ty)
1356
- .str ()),
1357
- summary_sp);
1358
- // std::basic_string<char, std::char_traits<char>, std::allocator<char> >
1345
+
1359
1346
category_sp->AddTypeSummary (
1360
- makeSpecifier (
1361
- llvm::formatv (" std::basic_string<{0}, std::char_traits<{0}>, "
1362
- " std::allocator<{0}> >" ,
1347
+ std::make_shared<lldb_private::TypeNameSpecifierImpl>(
1348
+ llvm::formatv (" ^std::basic_string<{0}, ?std::char_traits<{0}>,.*>$" ,
1363
1349
char_ty)
1364
- .str ()),
1350
+ .str (),
1351
+ eFormatterMatchRegex),
1365
1352
summary_sp);
1366
1353
}
1367
1354
@@ -1384,20 +1371,17 @@ static void LoadLibStdcppFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
1384
1371
cpp_category_sp->AddTypeSummary (" std::__cxx11::string" , eFormatterMatchExact,
1385
1372
string_summary_sp);
1386
1373
cpp_category_sp->AddTypeSummary (
1387
- " std::__cxx11::basic_string<char, std::char_traits<char>, "
1388
- " std::allocator<char> >" ,
1389
- eFormatterMatchExact, string_summary_sp);
1390
- cpp_category_sp->AddTypeSummary (" std::__cxx11::basic_string<unsigned char, "
1391
- " std::char_traits<unsigned char>, "
1392
- " std::allocator<unsigned char> >" ,
1393
- eFormatterMatchExact, string_summary_sp);
1374
+ " ^std::__cxx11::basic_string<char, std::char_traits<char>,.*>$" ,
1375
+ eFormatterMatchRegex, string_summary_sp);
1376
+ cpp_category_sp->AddTypeSummary (" ^std::__cxx11::basic_string<unsigned char, "
1377
+ " std::char_traits<unsigned char>,.*>$" ,
1378
+ eFormatterMatchRegex, string_summary_sp);
1394
1379
1395
1380
cpp_category_sp->AddTypeSummary (" std::__cxx11::wstring" , eFormatterMatchExact,
1396
1381
string_summary_sp);
1397
1382
cpp_category_sp->AddTypeSummary (
1398
- " std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, "
1399
- " std::allocator<wchar_t> >" ,
1400
- eFormatterMatchExact, string_summary_sp);
1383
+ " ^std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,.*>$" ,
1384
+ eFormatterMatchRegex, string_summary_sp);
1401
1385
1402
1386
SyntheticChildren::Flags stl_synth_flags;
1403
1387
stl_synth_flags.SetCascades (true ).SetSkipPointers (false ).SetSkipReferences (
0 commit comments