Skip to content

EnumerableDebugVisualizer

Jeremy Thomas edited this page Dec 18, 2017 · 3 revisions

Enumerable Debugger Visualizer

An enumerable Debugger Visualizer for Visual Studio that displays any registered IEnumerable object such as a lists, collections, dictionaries and Linq enumerables in a GridDataEditor 

image

The GridDataEditor supports filtering, sorting and exporting.

Installation

Binary

Download AW.EnumerableVisualizer.2015.exe orAW.EnumerableVisualizer.2013.exe  and run, you will be presented with this install screen:

image_thumb[1]

You may need to run it as admin to install for all users.

- Earlier versions

Version 3: DownloadAW.EnumerableVisualizer.2012.exe  and run:

 

Download AW.EnumerableVisualizer.dll(VS2008) orAW.EnumerableVisualizer.dll(VS2010) then copy it to either of the debugger visualizers directories:How to: Install a Visualizer

Note, the binary is an ilmerge of the AW.DebugVisualizers.dll and its support assemblies.

Source code

  1. Repository code is downloadable from the source code tab, though I recommend using TortoiseSVN for the getting the source from the repository.
  2. Build the solution AW.DebugVisualizers.sln
  3. Run DebugDeploy.bat which copies AW.DebugVisualizers.dll and its support assemblies to %userprofile%\My Documents\Visual Studio 20XX\Visualizers. or use ILMerge-GUI to build a single executable from AW.DebugVisualizers.ilproj

Note

Unfortunately you can't register a debugger visualizer for interfaces so every IEnumerable class must registered individually. The, over 500, mainly BCL, classes that are registered can be seen in the fileVisualizerRegistrations.cs, you can easily add more to the source code.

If you wish to visualize a non-registered variable you can wrap the variable you want to inspect like this:**new System.WeakReference(variable_to_inspect)**in the same way thathttp://code.google.com/p/linqpadvisualizer/  supports.

How it works

Uses the Bi­na­ry­For­mat­ter se­ri­al­iz­er.

Strategy is: if the items are serializable then   if the enumerable is also serializable then     serialize the enumerable else   create an ObjectListView to contain the items and serialize that. Full back is to: Copy the enumerable to a DataTable and serialize that.

Lists of other Debugger Visualizers

Dotnetpowered Debugger Visualizers List Comprehensive list of Debugger Visualizers for Visual Studio

Universal Debugger Visualizers

LINQBridgeVs (LINQBridgeVs SV extension) (Uses LINQPad, adds VS command to generate a Debugger Visualizer for all types in the selected project)

https://oceanware.wordpress.com/mole-visual-studio-debugger-visualizer http://www.codeproject.com/Articles/22576/Mole-For-Visual-Studio-With-Editing-Visualize-All

Other collection Debugger Visualizers

http://www.adamdawes.com/programming/vs2005/adcollectionsvisualizer.html (VS2010 and below) http://www.codeproject.com/Articles/25268/A-Generic-List-and-Dictionary-Debugger-Visualizer (VS2010 and below with source)

LINQPad Debugger Visualizer for VS2010 and earlier,LINQPad Debugger Visualizer for VS2013 (Recommend LINQBridgeVs instead) https://www.codeproject.com/Articles/1181451/Visual-Studio-Collection-Visualizers

Visual Studio Watchers (VS2012 and below)

http://www.antoniob.com/visual-studio-list-debugger-visualizer.html (VS2015, VS2013 and VS2012)

Objects that can have debugger visualizers:

You can write a custom visualizer for an object of any managed class except for Object or Array Debugger visualizers won't work on interface types Debugger visualizers won't work on nested classes in VS2008

Other debugger visualizers Links

Visual Studio Debugger Visualizers: what I wish I’d known

http://stackoverflow.com/questions/787334/how-to-keep-visual-studio-debugger-visualizers-from-timing-out

http://karlshifflett.wordpress.com/2011/04/04/extending-mole-2010s-reach-mole-type-loader/

VSIX : Support for Debugger visualizer

Other debugging Links

http://blogs.msdn.com/b/habibh/archive/2009/09/21/coverage-of-the-visual-studio-2010-historical-debugger.aspx

Collection Debugger Visualizer, List Debugger Visualizer

Clone this wiki locally