Skip to content

Commit a8e2a74

Browse files
committed
Update debugger visualizers
1 parent e36f74d commit a8e2a74

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

src/etc/gdb_providers.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,13 @@ def display_hint():
169169
class StdVecDequeProvider(printer_base):
170170
def __init__(self, valobj):
171171
self._valobj = valobj
172-
self._head = int(valobj["head"])
172+
173+
head = valobj["head"]
174+
175+
# BACKCOMPAT: rust 1.95
176+
if head.type.code != gdb.TYPE_CODE_INT:
177+
head = head[ZERO_FIELD]
178+
self._head = int(head)
173179
self._size = int(valobj["len"])
174180
# BACKCOMPAT: rust 1.75
175181
cap = valobj["buf"]["inner"]["cap"]

src/etc/lldb_providers.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,7 @@ def StdSliceSummaryProvider(valobj, dict):
10321032
class StdVecDequeSyntheticProvider:
10331033
"""Pretty-printer for alloc::collections::vec_deque::VecDeque<T>
10341034
1035-
struct VecDeque<T> { head: usize, len: usize, buf: RawVec<T> }
1035+
struct VecDeque<T> { head: BufferIndex, len: usize, buf: RawVec<T> }
10361036
"""
10371037

10381038
def __init__(self, valobj: SBValue, _dict: LLDBOpaque):
@@ -1061,7 +1061,10 @@ def get_child_at_index(self, index: int) -> Optional[SBValue]:
10611061
return element
10621062

10631063
def update(self):
1064-
self.head = self.valobj.GetChildMemberWithName("head").GetValueAsUnsigned()
1064+
head = self.valobj.GetChildMemberWithName("head")
1065+
if head.GetType().num_fields == 1:
1066+
head = head.GetChildAtIndex(0)
1067+
self.head = head.GetValueAsUnsigned()
10651068
self.size = self.valobj.GetChildMemberWithName("len").GetValueAsUnsigned()
10661069
self.buf = self.valobj.GetChildMemberWithName("buf").GetChildMemberWithName(
10671070
"inner"

src/etc/natvis/liballoc.natvis

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<If Condition="i == len">
2424
<Break/>
2525
</If>
26-
<Item>(($T1*)buf.inner.ptr.pointer.pointer)[(i + head) % buf.inner.cap.__0]</Item>
26+
<Item>(($T1*)buf.inner.ptr.pointer.pointer)[(i + head.__0) % buf.inner.cap.__0]</Item>
2727
<Exec>i = i + 1</Exec>
2828
</Loop>
2929
</CustomListItems>

0 commit comments

Comments
 (0)