diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-07-27 05:22:46 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-07-27 05:22:46 +0000 |
commit | 3ef1ad2d28ef5a9b6ac7ec0bd4b2360a4ae3ee8b (patch) | |
tree | 6863070b95179285abbf9fa8547fc8a7796336c0 | |
parent | 990567cb60e8530ba01b41d4e056e32b44b95ec0 (diff) |
Easier debugging with Visual Studio Visualizers, from Nikola Smiljanic!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136207 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | utils/clangVisualizers.txt | 44 | ||||
-rw-r--r-- | www/hacking.html | 22 |
2 files changed, 66 insertions, 0 deletions
diff --git a/utils/clangVisualizers.txt b/utils/clangVisualizers.txt new file mode 100644 index 0000000000..f9f834b76c --- /dev/null +++ b/utils/clangVisualizers.txt @@ -0,0 +1,44 @@ + +[Visualizer] + +llvm::SmallVector<*,*>{ + preview ( + #( + "[", + ($T1*)$e.EndX - ($T1*)$e.BeginX, + "](", + #array( + expr: (($T1*)$e.BeginX)[$i], + size: ($T1*)$e.EndX - ($T1*)$e.BeginX + ), + ")" + ) + ) + + children ( + #( + #([size] : ($T1*)$e.EndX - ($T1*)$e.BeginX), + #([capacity] : ($T1*)$e.CapacityX - ($T1*)$e.BeginX), + #array( + expr: (($T1*)$e.BeginX)[$i], + size: ($T1*)$e.EndX - ($T1*)$e.BeginX + ) + ) + ) +} + +llvm::StringRef{ + preview ([$e.Data,s]) + stringview ([$e.Data,sb]) + + children ( + #( + #([size] : $e.Length), + #array(expr: $e.Data[$i], size: $e.Length) + ) + ) +} + +clang::Token{ + preview((clang::tok::TokenKind)(int)$e.Kind) +}
\ No newline at end of file diff --git a/www/hacking.html b/www/hacking.html index 969a39c559..b65768c987 100644 --- a/www/hacking.html +++ b/www/hacking.html @@ -86,6 +86,28 @@ </ul> <!--=====================================================================--> + <h3 id="debuggingVisualStudio">Debugging using Visual Studio</h3> + <!--=====================================================================--> + + <p>The file <tt>utils/clangVisualizers.txt</tt> provides debugger visualizers that make debugging + of more complex data types much easier.</p> + <p>There are two ways to install them:</p> + + <ul> + <li>Put the path to <tt>clangVisualizers.txt</tt> in the environment variable called + <tt>_vcee_autoexp</tt>. This method should work for Visual Studio 2008 and above. + </li> + <li>Edit your local <tt>autoexp.dat</tt> (make sure you make a backup first!), + located in <tt>Visual Studio Directory\Common7\Packages\Debugger</tt> and append + the contents of <tt>clangVisuailzers.txt</tt> to it. This method should work for + Visual Studio 2005 and above. + </li> + </ul> + + <p><i>[Note: To disable the visualizer for any specific variable, type + <tt>variable_name,!</tt> inside the watch window.]</i></p> + + <!--=====================================================================--> <h2 id="testing">Testing</h2> <!--=====================================================================--> |