[Lldb-commits] [lldb] 193bf2e - [formatters] Capping size limitation avoidance for the libcxx and libcpp bitset data formatters.
Walter Erquinigo via lldb-commits
lldb-commits at lists.llvm.org
Tue Nov 23 14:04:26 PST 2021
Author: Danil Stefaniuc
Date: 2021-11-23T14:03:59-08:00
New Revision: 193bf2e820520dd4a2d5ed0e7d50ee45e8127071
URL: https://github.com/llvm/llvm-project/commit/193bf2e820520dd4a2d5ed0e7d50ee45e8127071
DIFF: https://github.com/llvm/llvm-project/commit/193bf2e820520dd4a2d5ed0e7d50ee45e8127071.diff
LOG: [formatters] Capping size limitation avoidance for the libcxx and libcpp bitset data formatters.
This diff is avoiding the size limitation introduced by the capping size for the libcxx and libcpp bitset data formatters.
Reviewed By: wallace
Differential Revision: https://reviews.llvm.org/D114461
Added:
Modified:
lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/TestDataFormatterGenericBitset.py
lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/main.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
index fc8255983436..c8063915b178 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
@@ -81,12 +81,11 @@ bool GenericBitsetFrontEnd::Update() {
TargetSP target_sp = m_backend.GetTargetSP();
if (!target_sp)
return false;
- size_t capping_size = target_sp->GetMaximumNumberOfChildrenToDisplay();
size_t size = 0;
if (auto arg = m_backend.GetCompilerType().GetIntegralTemplateArgument(0))
- size = arg->value.getLimitedValue(capping_size);
+ size = arg->value.getLimitedValue();
m_elements.assign(size, ValueObjectSP());
m_first = m_backend.GetChildMemberWithName(GetDataContainerMemberName(), true)
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/TestDataFormatterGenericBitset.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/TestDataFormatterGenericBitset.py
index 3d7ff340caab..94efbc5c7cf6 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/TestDataFormatterGenericBitset.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/TestDataFormatterGenericBitset.py
@@ -21,7 +21,7 @@ class GenericBitsetDataFormatterTestCase(TestBase):
def setUp(self):
TestBase.setUp(self)
- primes = [1]*300
+ primes = [1]*1000
primes[0] = primes[1] = 0
for i in range(2, len(primes)):
for j in range(2*i, len(primes), i):
@@ -58,7 +58,8 @@ def do_test_value(self, stdlib_type):
self.check("empty", 0, VALUE)
self.check("small", 13, VALUE)
- self.check("large", 70, VALUE)
+ self.check("medium", 70, VALUE)
+ self.check("large", 1000, VALUE)
@add_test_categories(["libstdcxx"])
def test_value_libstdcpp(self):
@@ -84,6 +85,11 @@ def do_test_ptr_and_ref(self, stdlib_type):
self.check("ref", 70, REFERENCE)
self.check("ptr", 70, POINTER)
+ lldbutil.continue_to_breakpoint(process, bkpt)
+
+ self.check("ref", 1000, REFERENCE)
+ self.check("ptr", 1000, POINTER)
+
@add_test_categories(["libstdcxx"])
def test_ptr_and_ref_libstdcpp(self):
self.do_test_ptr_and_ref(USE_LIBSTDCPP)
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/main.cpp
index c7be1c5c7133..52aea76a25dc 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/main.cpp
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/main.cpp
@@ -20,9 +20,12 @@ int main() {
std::bitset<0> empty;
std::bitset<13> small;
fill(small);
- std::bitset<70> large;
+ std::bitset<70> medium;
+ fill(medium);
+ std::bitset<1000> large;
fill(large);
by_ref_and_ptr(small, &small); // break here
+ by_ref_and_ptr(medium, &medium);
by_ref_and_ptr(large, &large);
return 0;
}
More information about the lldb-commits
mailing list