C
Clive Dixon
I'm writing my first debugger visualiser, and I'm having to provide my own
serialisation as the object I'm examining is not serializable. I also want
to be able to modify the object via my visualizer, so I have overridden
VisualizerObjectSource.TransferData(object target, Stream incomingData,
Stream outgoingData). However the documentation available for this method is
somewhat poor and confusing, and I am blundering about in the dark on this
one.
I have tried deserialising the incomingData stream and modifying the target
object accordingly (and not doing anything with the outgoingData stream).
Now this seems to work, except that several seconds after closing my
visualizer I also get an error message box within Visual Studio:
System.Exception: Function evaluation timed out.
at
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.MaybeDeserializeAndThrowException(Byte[]
data)
at
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.WriteDataToStreamAndThrowOnException(Byte[]
data, Stream dataStream)
at
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.TransferData(Stream
outgoingData)
at
Digita.AccountsPro.DebuggerVisualizers.NominalSubCodeTotalCollectionVisualizer.Show(IDialogVisualizerService
windowService, IVisualizerObjectProvider objectProvider)
at
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.ManagedShim.DelegatedHost.CreateViewer(IntPtr
hwnd, HostServicesHelper hsh, SafeProxyWrapper proxy)
After clicking continue everything continues to run fine.
Does anyone have any idea as to why this is happening? And does anyone know
of any decent documentation about implementing an override of this method?
serialisation as the object I'm examining is not serializable. I also want
to be able to modify the object via my visualizer, so I have overridden
VisualizerObjectSource.TransferData(object target, Stream incomingData,
Stream outgoingData). However the documentation available for this method is
somewhat poor and confusing, and I am blundering about in the dark on this
one.
I have tried deserialising the incomingData stream and modifying the target
object accordingly (and not doing anything with the outgoingData stream).
Now this seems to work, except that several seconds after closing my
visualizer I also get an error message box within Visual Studio:
System.Exception: Function evaluation timed out.
at
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.MaybeDeserializeAndThrowException(Byte[]
data)
at
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.WriteDataToStreamAndThrowOnException(Byte[]
data, Stream dataStream)
at
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.TransferData(Stream
outgoingData)
at
Digita.AccountsPro.DebuggerVisualizers.NominalSubCodeTotalCollectionVisualizer.Show(IDialogVisualizerService
windowService, IVisualizerObjectProvider objectProvider)
at
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.ManagedShim.DelegatedHost.CreateViewer(IntPtr
hwnd, HostServicesHelper hsh, SafeProxyWrapper proxy)
After clicking continue everything continues to run fine.
Does anyone have any idea as to why this is happening? And does anyone know
of any decent documentation about implementing an override of this method?