Fix StdVBoolImplementation to handle large vectors
The previous implementation only read out the first element of the
underlying storage array. Because of it only the first 32 (on x86) or
the first 64 (on x86_64) element was displayed.
Differential revision: http://reviews.llvm.org/D8585
llvm-svn: 233179
diff --git a/lldb/examples/synthetic/gnu_libstdcpp.py b/lldb/examples/synthetic/gnu_libstdcpp.py
index ca2d2a0..90cbcd7 100644
--- a/lldb/examples/synthetic/gnu_libstdcpp.py
+++ b/lldb/examples/synthetic/gnu_libstdcpp.py
@@ -233,8 +233,9 @@
return None
byte_offset = index / 8
bit_offset = index % 8
- data = self.start_p.GetPointeeData()
- bit = data.GetUnsignedInt8(lldb.SBError(), byte_offset) & (1 << bit_offset)
+ element_size = self.start_p.GetType().GetPointeeType().GetByteSize()
+ data = self.start_p.GetPointeeData(byte_offset / element_size)
+ bit = data.GetUnsignedInt8(lldb.SBError(), byte_offset % element_size) & (1 << bit_offset)
if bit != 0:
value_expr = "(bool)true"
else: