2011-04-22 32 views
10

He estado jugando con la configuración de depuración VS 2010, tratando de entrar en .NET Framework funcionando. Bueno, no puedo hacer que funcione. También probé el complemento Reflector VS y eso funcionaba en un punto."El depurador no puede continuar ejecutando el proceso".

Entonces azar comenzó a recibir este error:

enter image description here

Este única sucede cuando tengo un punto de interrupción en una línea que llama IEnumerable<T>.ToList(). Si trato de dar un paso atrás o entrar en esa línea donde está establecido mi punto de interrupción, aparece este cuadro de diálogo de error y mi sesión de depuración finaliza.

Si muevo el punto de interrupción a la línea siguiente, el depurador pasa la llamada ToList()!

He intentado lo siguiente en vano:

  • Extracción del plug-in reflector.
  • Deshaciendo los cambios en Herramientas> Opciones> Ventana de depuración (desmarque la opción para entrar en .NET Framework, desmarque la opción del servidor de origen, marque la opción solo mi código).
  • Servidor de origen de Microsoft no seleccionado en la ventana Herramientas> Opciones> Depuración> Símbolos.
  • Se borró el caché de símbolos.

¿Qué está pasando?

+0

Podría publicar su pila de llamadas cuando los golpes de punto de ruptura? –

+0

Podría, pero no ayudaría ya que no puedo intervenir en absoluto. Sé que la línea en cuestión arroja una StackOverflowException si elimino el punto de interrupción. –

Respuesta

1

sufría de mismo problema ....

encontré una solución que escuchó raro ....

El depurador no puede seguir ejecutando la process.Process se terminó Mientras que la depuración del código paso paso, encontrarás la línea, desde donde el error redirecciona. Si está utilizando "ToString()" en cualquier parte de ese archivo, elimínelo. En lugar de, puede usar Value/Text. Funciona bien. ............

Si no se utilizó ToString() en ningún lugar del programa, vuelva a cargar la copia del proyecto eliminándolo por completo.

2

¡Ocurrió un override ToString() que hace que el depurador se bloquee! (Después de la evaluación, el depurador le mostrará el resultado con el método ToString()). Y si obtiene una excepción en el ToString(), nunca encontrará una excepción porque no puede codificarlos en el comportamiento del depurador.

Tengo esta respuesta de MSDN

0

Este mensaje también se mostrará cuando se está tratando de depurar una solución Xamarin pero usted tiene una biblioteca de clase seleccionada como proyecto de inicio en lugar de su Porject aplicación.

0

Tuve el mismo problema. Lo remonté a una clase (depuración paso a paso) y finalmente a una propiedad (comentando todo el código, luego descomentando paso a paso).

esta propiedad devolvió un conjunto de datos tipeados de una tabla.Dataset

private typedDataSet myDataSet 
{ 
    return this.DataSet as typedDataSet; 
} 

esto estaba en una clase parcial de DataTable. Después de eliminar esta propiedad, todo salió bien.

4

Como este fue el primer lugar al que acudí cuando busqué una respuesta, agregaré lo que descubrí.

En mi caso, tuve el depurador configurado en la solución para iniciar varios proyectos. Por alguna razón, Visual Studio modificó esta configuración para que no se iniciara ningún proyecto. Corregir la configuración en la solución solucionó el problema de inmediato.

El problema no fue difícil de resolver, pero el mensaje de error fue más que irritante.

3

Acabo de encontrar this answer útil. Todo lo que hice fue cambiar mi proyecto de inicio a otro y volver a la normalidad.

Mi proyecto probablemente perdió esta configuración en algún lugar, y su restablecimiento volvió a estar disponible.

0

Me encontré con este problema con un error de código de copiar/pegar. En lugar de obtener/establecer la variable de miembro privado, hice un get/set en sí mismo. Cuando hice referencia a la propiedad de otro código del depurador terminado (2010):

public bool ProdToDeve 
{ 
    get { return ProdToDeve; } // <= missing underbar 
    set { ProdToDeve = value; } 
} 
private bool _ProdToDeve = false; 
0

Se me ocurrió cuando estaba haciendo lo siguiente:

throw new Exception(timeout.TotalSeconds + " second(s)");

Esto se debe a timeout.TotalSeconds.ToString() que de hecho es una anulación método para un objeto del tipo double, lanzaba una excepción Parameter not valid.

Por último, para la seguridad de que terminé haciendo el seguimiento:

throw new Exception(System.Convert.ToString(timeout.TotalSeconds));

Cuestiones relacionadas