diff options
| author | Kamil Zbróg | 2013-12-09 19:03:42 +0000 |
|---|---|---|
| committer | Kamil Zbróg | 2013-12-09 19:03:42 +0000 |
| commit | 7add223d859ae270834cafa5eaac2fb5d5a6bb50 (patch) | |
| tree | ee6551d2d7de3c0e07ffb86d7453691f815b1757 /devtools/create_project | |
| parent | 8e772f936c43a68e4ae7c68b178bd9fa3a3e4f1f (diff) | |
| parent | 8a936200037e6d97212a4d0ad6a710c87cc15b58 (diff) | |
| download | scummvm-rg350-7add223d859ae270834cafa5eaac2fb5d5a6bb50.tar.gz scummvm-rg350-7add223d859ae270834cafa5eaac2fb5d5a6bb50.tar.bz2 scummvm-rg350-7add223d859ae270834cafa5eaac2fb5d5a6bb50.zip | |
Merge remote-tracking branch 'sync/master' into prince-malik
Diffstat (limited to 'devtools/create_project')
| -rw-r--r-- | devtools/create_project/scripts/scummvm.natvis | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/devtools/create_project/scripts/scummvm.natvis b/devtools/create_project/scripts/scummvm.natvis new file mode 100644 index 0000000000..ffeced7cff --- /dev/null +++ b/devtools/create_project/scripts/scummvm.natvis @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + Debug visualizers for a few common ScummVM types for Visual Studio 2012 and up. + + To use, copy this file into Documents\Visual Studio 20xx\Visualizers. + + Known issues: + + * Lists appear to be infinite (the same elements repeat over and over again). + Unfortunately, Lists don't store length information, and it's not possible to + detect whether a Node is the last one by the Node itself. + + * In HashMaps, missing and dummy nodes are shown along with the useful ones. +--> + +<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> + <Type Name="Common::Array<*>"> + <DisplayString>{{size = {_size}}}</DisplayString> + <Expand> + <Item Name="[size]">_size</Item> + <Item Name="[capacity]">_capacity</Item> + <ArrayItems> + <Size>_size</Size> + <ValuePointer>_storage</ValuePointer> + </ArrayItems> + </Expand> + </Type> + + <Type Name="Common::HashMap<*,*,*,*>"> + <DisplayString>{{ size = {_size} }}</DisplayString> + <Expand> + <Item Name="[size]">_size</Item> + <Item Name="[capacity]">_mask + 1</Item> + <Item Name="[deleted]">_deleted</Item> + <IndexListItems> + <Size>_mask + 1</Size> + <ValueNode Condition="_storage[$i] && _storage[$i] != (Common::HashMap<$T1,$T2,$T3,$T4>::Node *)1">*_storage[$i]</ValueNode> + </IndexListItems> + </Expand> + </Type> + + <Type Name="Common::List<*>"> + <DisplayString Condition="&_anchor == _anchor._next">{{ empty }}</DisplayString> + <DisplayString Condition="&_anchor != _anchor._next">{{ non-empty }}</DisplayString> + <Expand> + <LinkedListItems Condition="&_anchor != _anchor._next"> + <HeadPointer>_anchor._next</HeadPointer> + <NextPointer>_next</NextPointer> + <ValueNode>((Common::ListInternal::Node<$T1>*)this)->_data</ValueNode> + </LinkedListItems> + </Expand> + </Type> + + <Type Name="Common::String"> + <DisplayString>{_str,[_size]}</DisplayString> + <StringView>_str,[_size]</StringView> + <Expand> + <Item Name="[size]">_size</Item> + <Item Condition="_str != _storage" Name="[capacity]">_extern._capacity</Item> + <Item Condition="_str != _storage" Name="[refCount]">*_extern._refCount</Item> + <ArrayItems> + <Size>_size</Size> + <ValuePointer>_str</ValuePointer> + </ArrayItems> + </Expand> + </Type> +</AutoVisualizer> |
