This revision was automatically updated to reflect the committed changes.
Closed by commit rG506144da04b9: [lldb][DataFormatters] Support pretty printing
std::string when built with… (authored by rupprecht).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70517/new/
https://reviews.llvm.org/D70517
Files:
lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/main.cpp
lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/main.cpp
lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
Index: lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
===================================================================
--- lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+++ lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
@@ -425,6 +425,13 @@
"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> >$"),
+ stl_summary_flags, true);
AddCXXSummary(cpp_category_sp,
lldb_private::formatters::LibcxxStringSummaryProviderUTF16,
@@ -723,6 +730,10 @@
ConstString("std::__cxx11::basic_string<char, std::char_traits<char>, "
"std::allocator<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> >"),
+ cxx11_string_summary_sp);
// making sure we force-pick the summary for printing wstring (_M_p is a
// wchar_t*)
Index: lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/main.cpp
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/main.cpp
+++ lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/main.cpp
@@ -9,6 +9,7 @@
std::string empty("");
std::string q("hello world");
std::string Q("quite a long std::strin with lots of info inside it");
+ std::basic_string<unsigned char> uchar(5, 'a');
S.assign(L"!!!!!"); // Set break point at this line.
return 0;
}
Index: lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
+++ lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
@@ -59,26 +59,28 @@
var_empty = self.frame().FindVariable('empty')
var_q = self.frame().FindVariable('q')
var_Q = self.frame().FindVariable('Q')
+ var_uchar = self.frame().FindVariable('uchar')
# TODO: This is currently broken
- # self.assertTrue(var_wempty.GetSummary() == 'L""', "wempty summary wrong")
- self.assertTrue(
- var_s.GetSummary() == 'L"hello world! מזל טוב!"',
+ # self.assertEqual(var_wempty.GetSummary(), 'L""', "wempty summary wrong")
+ self.assertEqual(
+ var_s.GetSummary(), 'L"hello world! מזל טוב!"',
"s summary wrong")
- self.assertTrue(var_S.GetSummary() == 'L"!!!!"', "S summary wrong")
- self.assertTrue(
- var_mazeltov.GetSummary() == 'L"מזל טוב"',
+ self.assertEqual(var_S.GetSummary(), 'L"!!!!"', "S summary wrong")
+ self.assertEqual(
+ var_mazeltov.GetSummary(), 'L"מזל טוב"',
"mazeltov summary wrong")
- self.assertTrue(var_empty.GetSummary() == '""', "empty summary wrong")
- self.assertTrue(
- var_q.GetSummary() == '"hello world"',
+ self.assertEqual(var_empty.GetSummary(), '""', "empty summary wrong")
+ self.assertEqual(
+ var_q.GetSummary(), '"hello world"',
"q summary wrong")
- self.assertTrue(
- var_Q.GetSummary() == '"quite a long std::strin with lots of info inside it"',
+ self.assertEqual(
+ var_Q.GetSummary(), '"quite a long std::strin with lots of info inside it"',
"Q summary wrong")
+ self.assertEqual(var_uchar.GetSummary(), '"aaaaa"', "u summary wrong")
self.runCmd("next")
- self.assertTrue(
- var_S.GetSummary() == 'L"!!!!!"',
+ self.assertEqual(
+ var_S.GetSummary(), 'L"!!!!!"',
"new S summary wrong")
Index: lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/main.cpp
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/main.cpp
+++ lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/main.cpp
@@ -16,6 +16,7 @@
std::u16string u16_empty(u"");
std::u32string u32_string(U"🍄🍅🍆🍌");
std::u32string u32_empty(U"");
+ std::basic_string<unsigned char> uchar(5, 'a');
S.assign(L"!!!!!"); // Set break point at this line.
return 0;
}
Index: lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
+++ lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
@@ -74,8 +74,10 @@
'(%s::u16string) u16_empty = ""'%ns,
'(%s::u32string) u32_string = U"🍄🍅🍆🍌"'%ns,
# FIXME: This should have a 'U' prefix.
- '(%s::u32string) u32_empty = ""'%ns
-])
+ '(%s::u32string) u32_empty = ""'%ns,
+ '(%s::basic_string<unsigned char, %s::char_traits<unsigned char>, '
+ '%s::allocator<unsigned char> >) uchar = "aaaaa"'%(ns,ns,ns),
+ ])
self.runCmd("n")
@@ -107,4 +109,8 @@
'(%s::string) IHaveEmbeddedZeros = "a\\0b\\0c\\0d"'%ns,
'(%s::wstring) IHaveEmbeddedZerosToo = L"hello world!\\0てざ ル゜䋨ミ㠧槊 きゅへ狦穤襩 じゃ馩リョ 䤦監"'%ns,
'(%s::u16string) u16_string = u"ß水氶"'%ns,
- '(%s::u32string) u32_string = U"🍄🍅🍆🍌"'%ns])
+ '(%s::u32string) u32_string = U"🍄🍅🍆🍌"'%ns,
+ '(%s::u32string) u32_empty = ""'%ns,
+ '(%s::basic_string<unsigned char, %s::char_traits<unsigned char>, '
+ '%s::allocator<unsigned char> >) uchar = "aaaaa"'%(ns,ns,ns),
+ ])
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits