Способ, которым я сделал это в своем проекте, - сначала иметь общую визуализацию для моего связанного списка.Это то, что у вас уже есть.
<Type Name="MyLinkedList">
<Expand>
<LinkedListItems>
<HeadPointer>this</HeadPointer>
<NextPointer>next</NextPointer>
<ValueNode>pData</ValueNode>
</LinkedListItems>
</Expand>
</Type>
Затем я пошел в классы, где я знал, как интерпретировать указатели void
, к какому типу я должен их привести.Поэтому я создал значение Synthetic
с тем же именем, что и переменная-член, изменил HeadPointer
с this
на имя переменной-члена и, наконец, произвел приведение типа для ValueNode
.
<Type Name="MyClass">
<Expand>
<Synthetic Name="m_list">
<Expand>
<LinkedListItems>
<HeadPointer>m_list</HeadPointer>
<NextPointer>next</NextPointer>
<ValueNode>(TheKnownType*)pData</ValueNode>
</LinkedListItems>
</Expand>
</Synthetic>
</Expand>
</Type>
Недостатком является то, что мне нужно скопировать код в несколько мест, но он работает.
В зависимости от типов, на которые указывают ваши указатели (например, всегда CObject
?), Он может такжеможно определить тип в MyLinkedList
и в зависимости от права Condition
выбрать, что отображать.