[Lldb-commits] [PATCH] D57466: [lldb] Relax libc++ ABI version checking

2019-01-30 Thread Tom Anderson via Phabricator via lldb-commits
thomasanderson created this revision.
thomasanderson added reviewers: EricWF, thakis.
Herald added subscribers: abidh, jfb.

libc++ has programmable ABI versioning controllable with the _LIBCPP_ABI_VERSION
macro.  Currently there are at least 3 settings used in real systems (1 as the
default, ndk1 for Anroid, Cr for Chromium).

Only the 1 and ndk1 cases were handled.  This change relaxes the check to allow
any ABI version.


Repository:
  rLLDB LLDB

https://reviews.llvm.org/D57466

Files:
  source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp

Index: source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
===
--- source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+++ source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
@@ -419,60 +419,46 @@
   .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::__.+::string$"), stl_summary_flags, true);
+  AddCXXSummary(cpp_category_sp,
+lldb_private::formatters::LibcxxStringSummaryProviderASCII,
+"std::string summary provider",
+ConstString("^std::__.+::basic_string, "
+"std::__.+::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::__.+::basic_string, "
+"std::__.+::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::__.+::basic_string, "
+"std::__.+::allocator >$"),
+stl_summary_flags, true);
+
+  AddCXXSummary(cpp_category_sp,
+lldb_private::formatters::LibcxxWStringSummaryProvider,
+"std::wstring summary provider",
+ConstString("^std::__.+::wstring$"),
+stl_summary_flags, true);
+  AddCXXSummary(cpp_category_sp,
+lldb_private::formatters::LibcxxWStringSummaryProvider,
+"std::wstring summary provider",
+ConstString("^std::__.+::b

[Lldb-commits] [PATCH] D57466: [lldb] Relax libc++ ABI version checking

2019-01-30 Thread Tom Anderson via Phabricator via lldb-commits
thomasanderson updated this revision to Diff 184418.

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57466/new/

https://reviews.llvm.org/D57466

Files:
  source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp

Index: source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
===
--- source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+++ source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
@@ -419,61 +419,50 @@
   .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(fal

[Lldb-commits] [PATCH] D57466: [lldb] Relax libc++ ABI version checking

2019-01-30 Thread Tom Anderson via Phabricator via lldb-commits
thomasanderson added a comment.

In D57466#1377696 , @davide wrote:

> As long as this doesn't break macOS, it's fine. (just run the tests and watch 
> the bots).


Latest revision fixes 2 test failures on Linux.  The first was because ".+" was 
matching too aggressively, so I changed it to "[[:alnum:]]+".  The second was 
because libstdc++ printers were getting loaded after libc++, but they need to 
go before to take precedence.
Can confirm that there's no new test failures with this change on Mac and 
Linux.  Does the latest revision still lg?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57466/new/

https://reviews.llvm.org/D57466



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D57466: [lldb] Relax libc++ ABI version checking

2019-02-01 Thread Tom Anderson via Phabricator via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL352899: [lldb] Relax libc++ ABI version checking (authored 
by thomasanderson, committed by ).
Herald added a project: LLVM.

Changed prior to commit:
  https://reviews.llvm.org/D57466?vs=184418&id=184798#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57466/new/

https://reviews.llvm.org/D57466

Files:
  lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp

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,
+