From 2fde57c1d1e4a78ed4095b886d731053df07e4b9 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Fri, 25 Jan 2013 23:37:25 +0000 Subject: A port of the Visual Studio 2012 debugger visualizers for common LLVM and clang datatypes. Patch thanks to Nico Rieck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173532 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/llvm.natvis | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 utils/llvm.natvis (limited to 'utils/llvm.natvis') diff --git a/utils/llvm.natvis b/utils/llvm.natvis new file mode 100644 index 0000000..6b4ef83 --- /dev/null +++ b/utils/llvm.natvis @@ -0,0 +1,181 @@ + + + + + empty + {{ size={($T1*)EndX - ($T1*)BeginX} }} + + ($T1*)EndX - ($T1*)BeginX + ($T1*)CapacityX - ($T1*)BeginX + + ($T1*)EndX - ($T1*)BeginX + ($T1*)BeginX + + + + + + empty + [{($T1*)EndX - ($T1*)BeginX}] + + ($T1*)EndX - ($T1*)BeginX + ($T1*)CapacityX - ($T1*)BeginX + + ($T1*)EndX - ($T1*)BeginX + ($T1*)BeginX + + + + + + {BeginX,s} + BeginX,s + + (char*)EndX - (char*)BeginX + (char*)CapacityX - (char*)BeginX + + (char*)EndX - (char*)BeginX + (char*)BeginX + + + + + + [{Length}] {Data,s} + Data,s + + Length + + Length + Data + + + + + + {Value & PointerBitMask} [{(Value >> IntShift) & IntMask}] + + Value & PointerBitMask + (Value >> IntShift) & IntMask + + + + + [P1] {($T1)(Val.Value & Val.PointerBitMask)} + [P2] {($T2)(Val.Value & Val.PointerBitMask)} + + ($T1)(Val.Value & Val.PointerBitMask) + ($T2)(Val.Value & Val.PointerBitMask) + + + + + [P1] {($T1)((Val.Val.Value >> 2) << 2)} + [P2] {($T2)((Val.Val.Value >> 2) << 2)} + [P3] {($T3)((Val.Val.Value >> 2) << 2)} + + ($T1)((Val.Val.Value >> 2) << 2) + ($T2)((Val.Val.Value >> 2) << 2) + ($T3)((Val.Val.Value >> 2) << 2) + + + + + [P1] {($T1)((Val.Val.Value >> 2) << 2)} + [P2] {($T2)((Val.Val.Value >> 2) << 2)} + [P3] {($T3)((Val.Val.Value >> 2) << 2)} + [P4] {($T4)((Val.Val.Value >> 2) << 2)} + + ($T1)((Val.Val.Value >> 2) << 2) + ($T2)((Val.Val.Value >> 2) << 2) + ($T3)((Val.Val.Value >> 2) << 2) + ($T4)((Val.Val.Value >> 2) << 2) + + + + + {{ empty }} + {{ head={Head} }} + + + Head + Next + this + + + + + + empty + RefPtr [1 ref] {*Obj} + RefPtr [{Obj->ref_cnt} refs] {*Obj} + + Obj->ref_cnt + Obj + + + + + empty + OwningPtr {*Ptr} + + Ptr + + + + + {{ [Small Mode] elements={NumElements}, arraySize={CurArraySize} }} + {{ [Big Mode] elements={NumElements}, arraySize={CurArraySize} }} + + NumElements + CurArraySize + + CurArraySize + 1 + ($T1*)&CurArray[$i] + + + + + + empty + {{ entries={NumEntries}, buckets={NumBuckets} }} + + NumEntries + NumBuckets + + NumBuckets + Buckets + + + + + + {{ NumBuckets={NumBuckets}, ItemSize={ItemSize} }} + + NumBuckets + ItemSize + + NumBuckets + (llvm::StringMapEntry<$T1>*)TheTable[$i] + + + + + + empty + ({((llvm::StringMapEntry<$T1>*)this)+1,s}, {second}) + + ((llvm::StringMapEntry<$T1>*)this)+1,s + second + + + + + {Data} + + -- cgit v1.1