summaryrefslogtreecommitdiffstats
path: root/src/etc/lldb_providers.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/etc/lldb_providers.py')
-rw-r--r--src/etc/lldb_providers.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/etc/lldb_providers.py b/src/etc/lldb_providers.py
index 4c86b2146..cfb3f0a4e 100644
--- a/src/etc/lldb_providers.py
+++ b/src/etc/lldb_providers.py
@@ -267,7 +267,8 @@ class StdVecSyntheticProvider:
"""Pretty-printer for alloc::vec::Vec<T>
struct Vec<T> { buf: RawVec<T>, len: usize }
- struct RawVec<T> { ptr: Unique<T>, cap: usize, ... }
+ rust 1.75: struct RawVec<T> { ptr: Unique<T>, cap: usize, ... }
+ rust 1.76: struct RawVec<T> { ptr: Unique<T>, cap: Cap(usize), ... }
rust 1.31.1: struct Unique<T: ?Sized> { pointer: NonZero<*const T>, ... }
rust 1.33.0: struct Unique<T: ?Sized> { pointer: *const T, ... }
rust 1.62.0: struct Unique<T: ?Sized> { pointer: NonNull<T>, ... }
@@ -390,7 +391,10 @@ class StdVecDequeSyntheticProvider:
self.head = self.valobj.GetChildMemberWithName("head").GetValueAsUnsigned()
self.size = self.valobj.GetChildMemberWithName("len").GetValueAsUnsigned()
self.buf = self.valobj.GetChildMemberWithName("buf")
- self.cap = self.buf.GetChildMemberWithName("cap").GetValueAsUnsigned()
+ cap = self.buf.GetChildMemberWithName("cap")
+ if cap.GetType().num_fields == 1:
+ cap = cap.GetChildAtIndex(0)
+ self.cap = cap.GetValueAsUnsigned()
self.data_ptr = unwrap_unique_or_non_null(self.buf.GetChildMemberWithName("ptr"))