From: Mike Spertus Date: Sat, 5 Jan 2019 16:59:27 +0000 (+0000) Subject: Enhance MSVC visualization of PointerUnions X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b1b3e118f18ec01be24e2b91052d917282324e90;p=llvm Enhance MSVC visualization of PointerUnions Add a "deref" view that displays the pointed to objects since other visualizers often need to display data reference by internal PointerUnions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350469 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/LLVMVisualizers/llvm.natvis b/utils/LLVMVisualizers/llvm.natvis index 410ac37147c..89c99f41325 100644 --- a/utils/LLVMVisualizers/llvm.natvis +++ b/utils/LLVMVisualizers/llvm.natvis @@ -93,19 +93,25 @@ For later versions of Visual Studio, no setup is required. + - {"$T1", s8b}: {($T1)(Val.Value & ValTy::InfoTy::PointerBitMask)} - {"$T2", s8b}: {($T2)(Val.Value & ValTy::InfoTy::PointerBitMask)} + {*($T1)(Val.Value & ValTy::InfoTy::PointerBitMask)} + {*($T2)(Val.Value & ValTy::InfoTy::PointerBitMask)} + {"$T1", s8b}: {($T1)(Val.Value & ValTy::InfoTy::PointerBitMask)} + {"$T2", s8b}: {($T2)(Val.Value & ValTy::InfoTy::PointerBitMask)} "$T1", s8b - ($T1)(Val.Value & ValTy::InfoTy::PointerBitMask) + ($T1)(Val.Value & ValTy::InfoTy::PointerBitMask) "$T2", s8b - ($T2)(Val.Value & ValTy::InfoTy::PointerBitMask) + ($T2)(Val.Value & ValTy::InfoTy::PointerBitMask) - {"$T3", s8b}: {($T3)(Val.Val.Value & ValTy::ValTy::InfoTy::PointerBitMask)} + {Val,view(deref)} + {*(InnerUnion*)&Val.Val.Value,view(deref)} + {Val} {*(InnerUnion*)&Val.Val.Value} "$T3", s8b @@ -115,6 +121,22 @@ For later versions of Visual Studio, no setup is required. + + {*($T1)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask)} + + + {*($T2)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask)} + + + {*($T3)(Val.Val.Value & InnerUnion2::ValTy::InfoTy::PointerBitMask)} + + + {*($T4)(Val.Val.Value & InnerUnion2::ValTy::InfoTy::PointerBitMask)} + {"$T1", s8b}: {($T1)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask)}