From 697c9329fcbd8a6700f72a508a7701106c771cbe Mon Sep 17 00:00:00 2001 From: Mike Spertus Date: Sat, 5 Jan 2019 16:59:27 +0000 Subject: [PATCH] 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 llvm-svn: 350469 --- utils/LLVMVisualizers/llvm.natvis | 32 ++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) 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)}