Microsoft.VisualStudio.DebuggerVisualizers Namespace
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Classes
DialogDebuggerVisualizer |
All custom Debugger Visualizers must derive from this class and provide a parameterless constructor to be called by VS. |
VisualizerDevelopmentHost |
Host class for testing during development of the Managed custom visualizer. |
VisualizerObjectSource |
Provides access to the object being visualized. |
VisualizerObjectSourceException |
Represents an exception thrown from the debuggee-side - through the EE, the visualizer infrastructure (debuggee host) or the debuggee user-code, and is thrown on the UI-side (catchable from the DialogDebuggerVisualizer). It's a rough UI equivalent of Microsoft.VisualStudio.VIL.VisualStudioHost.DebuggeeVisualizerException. |
Interfaces
IAsyncVisualizerObjectProvider |
Provides an async implementation for the methods defined in IVisualizerObjectProvider2 that provide functionality to pass data from the debugee to the visualizer and vice versa. |
IDeserializableObject |
Interface used to deserialize objects when the underlying format (binary or JSON) is not known. |
IDialogVisualizerService |
Provides methods that a visualizer can call to display System.Windows forms, dialogs, and controls. |
IVisualizerObjectProvider |
Provides object data from the debuggee to the visualizer. |
IVisualizerObjectProvider2 |
Provides additional functionality to pass data from the debuggee to the visualizer. |
IVisualizerObjectProvider3 |
Lets visualizer debugger and debuggee side components coordinate on which serialization mechanism to use, and provides additional functionality to pass data to the debuggee-side taking into account the SelectedFormatterPolicy. |
Enums
FormatterPolicy |
The formatting style to use when serializing/deserializing information from the VisualizerObjectSource. |
Examples
public class DebuggerSide : DialogDebuggerVisualizer
{
override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
MessageBox.Show(objectProvider.GetObject().ToString());
}
// . . . Other methods omitted for clarity.
}
Remarks
A visualizer is a small program the Visual Studio debugger uses to display, that is, visualize, an object of a specific data type in meaningful fashion. To visualize an object, a visualizer uses code that runs in the debugger process (the debugger side) and code in the process being debugged (the debuggee side).
The debugger side and debuggee side communicate with each other using VisualizerObjectSource and IVisualizerObjectProvider.
The debuggee side uses VisualizerObjectSource to specify a VisualizerObjectSource object for the debugger side. The debugger side requests and receives this information by calling methods on the IVisualizerObjectProvider interface.
A visualizer can edit, as well as display, data. If your visualizer supports editing data, you must replace the data entirely by calling ReplaceData or ReplaceObject or transfer data back to the debuggee using TransferData or TransferObject. If you want to save data back, you also need to create your own object source.