]> granicus.if.org Git - clang/commitdiff
Easier debugging with Visual Studio Visualizers, from Nikola Smiljanic!
authorDouglas Gregor <dgregor@apple.com>
Wed, 27 Jul 2011 05:22:46 +0000 (05:22 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 27 Jul 2011 05:22:46 +0000 (05:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136207 91177308-0d34-0410-b5e6-96231b3b80d8

utils/clangVisualizers.txt [new file with mode: 0644]
www/hacking.html

diff --git a/utils/clangVisualizers.txt b/utils/clangVisualizers.txt
new file mode 100644 (file)
index 0000000..f9f834b
--- /dev/null
@@ -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
index 969a39c55998589af37eca9ea71b89cb39969fd8..b65768c9873a8cc80f2cf6b029cc3a48178c0a8d 100644 (file)
       wrapped <tt>Type*</tt> which you can then dump.</li>
     </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>
   <!--=====================================================================-->