2009-04-24 7 views
34

que he hecho con éxito varios visualizadores del depurador de Visual Studio, y están trabajando muy bien, excepto que en algunos objetos consigo un tiempo de espera de error al intentar deserializar el objeto con objectProvider.GetObject()¿Cómo evitar que los visualizadores del depurador de Visual Studio caduquen?

System.Exception: Function evaluation timed out. 
    at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.MaybeDeserializeAndThrowException(Byte[] data) 

El tiempo sucede bastante rápido (tal vez un segundo después de hacer clic en el ícono del visualizador), aunque algunos de mis otros visualizadores funcionan bien incluso con objetos de datos grandes que son mucho más largos de mostrar (5-10 segundos) y aún no agotan el tiempo de espera.

Ya he creado una fuente de objeto personalizada para limitar la serialización a los campos que necesito mostrar. ¿Qué más puedo hacer para que los datos se deserialicen sin tiempo de espera?

Respuesta

41
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger 

creo que esto no está documentado, pero se puede intentar cambiar algunos de los tiempos de espera en la clave de registro anterior y reinicie Visual Studio.

+24

Parece que 'NormalEvalTimeout' es el valor a cambiar (el valor se especifica en milisegundos). 'QuickwatchTimeout' también vale la pena actualizar si usa esta función (al pasar el ratón sobre una variable en el depurador para ver su valor actual). Los valores predeterminados para estos valores son 5000 y 15000, respectivamente, si necesita restaurarlos. – alastairs

+3

Al igual que con otras claves de registro, asegúrese de que Visual Studio esté cerrado (no se ejecutarán procesos 'devenv'), o VS sobrescribirá el valor cuando salga. – ashes999

5

estaba recientemente golpeado por este en VS2012 y tras Google encontré this:

Como dice el mensaje de excepción, esta excepción significa que el visualizador de depurador para la tabla de datos se mide el tiempo hacia fuera. En el depurador VS, cada ventana de evaluación de expresión (como ventana de visualización, ventana local, , información de datos, ventana automática, etc.) tiene diferente valor predeterminado de expiración máxima evaluación expirada. Para información sobre datos, preferimos dar un valor de tiempo de espera corto porque de lo contrario proporcionará una expresión de usuario pobre . Si desea utilizar la funcionalidad del visualizador para esa tabla de datos, puede agregar la expresión a un reloj y tratar de visualizarlo en (porque la ventana de observación tiene un valor de tiempo de espera más largo). Si desea deshacerse de este tiempo de espera en la información sobre datos, puede intentar aumentar el valor de tiempo de espera para la información sobre datos. El valor de tiempo de espera es una configuración en clave de registro "DataTipTimeout" en: HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 10.0 \ Debugger Nota: debe sondear WOW64Node para sistema operativo de 64 bits. También puede ver el valor de tiempo de espera predeterminado de otras ventanas debajo de esta tecla.

0

Para el trabajo de Visual Studio depurador bien - "locales" de la ventana de "WPF visualizador" (probado en la aplicación de WPF), es necesario encontrar en el registro: HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 12.0 \ depurador \ El parámetro DWORD "LocalsTimeout" y el valor predeterminado (1000) configurados en un valor lo suficientemente grande, 5000, por ejemplo.

Cuestiones relacionadas