Skip to content

Commit 8199709

Browse files
committed
update debug providers to match new RawVec capacity field
1 parent 6a2f44e commit 8199709

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

Diff for: src/etc/gdb_providers.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,11 @@ def __init__(self, valobj):
154154
self._valobj = valobj
155155
self._head = int(valobj["head"])
156156
self._size = int(valobj["len"])
157-
self._cap = int(valobj["buf"]["cap"])
157+
# BACKCOMPAT: rust 1.75
158+
cap = valobj["buf"]["cap"]
159+
if cap.type.code != gdb.TYPE_CODE_INT:
160+
cap = cap[ZERO_FIELD]
161+
self._cap = int(cap)
158162
self._data_ptr = unwrap_unique_or_non_null(valobj["buf"]["ptr"])
159163

160164
def to_string(self):

Diff for: src/etc/lldb_providers.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,8 @@ class StdVecSyntheticProvider:
267267
"""Pretty-printer for alloc::vec::Vec<T>
268268
269269
struct Vec<T> { buf: RawVec<T>, len: usize }
270-
struct RawVec<T> { ptr: Unique<T>, cap: usize, ... }
270+
rust 1.75: struct RawVec<T> { ptr: Unique<T>, cap: usize, ... }
271+
rust 1.76: struct RawVec<T> { ptr: Unique<T>, cap: Cap(usize), ... }
271272
rust 1.31.1: struct Unique<T: ?Sized> { pointer: NonZero<*const T>, ... }
272273
rust 1.33.0: struct Unique<T: ?Sized> { pointer: *const T, ... }
273274
rust 1.62.0: struct Unique<T: ?Sized> { pointer: NonNull<T>, ... }
@@ -390,7 +391,10 @@ def update(self):
390391
self.head = self.valobj.GetChildMemberWithName("head").GetValueAsUnsigned()
391392
self.size = self.valobj.GetChildMemberWithName("len").GetValueAsUnsigned()
392393
self.buf = self.valobj.GetChildMemberWithName("buf")
393-
self.cap = self.buf.GetChildMemberWithName("cap").GetValueAsUnsigned()
394+
cap = self.buf.GetChildMemberWithName("cap")
395+
if cap.GetType().num_fields == 1:
396+
cap = cap.GetChildAtIndex(0)
397+
self.cap = cap.GetValueAsUnsigned()
394398

395399
self.data_ptr = unwrap_unique_or_non_null(self.buf.GetChildMemberWithName("ptr"))
396400

0 commit comments

Comments
 (0)