2010-05-02 12 views
6

Estoy depurando un proyecto y Visual Studio detiene la depuración y cierra el programa en la siguiente línea sin excepciones ni mensajes de error (habilité notificaciones para cualquier excepción lanzada en las opciones):Visual Studio detiene la depuración sin errores inesperadamente

var query = Session.Linq<RSS>() 
      .Where(x => x.LastRetrieved <= date || x.LastRetrieved == null) 
      .Where(x => x.Moderated); 

Donde Session.Linq hace referencia a LINQ2NHibernate. De todos modos, la pregunta es: ¿cuáles son las posibles razones para tal comportamiento? Probado tanto en VS 2010 como en 2008: se comportan de manera idéntica, simplemente cayendo de la depuración.

Actualización. Si cambio el tipo de aplicación a "Aplicación de consola", se comporta normalmente. Muy extraño.

+0

¿Ha intentado con habilitar Primeras excepciones? (CTRL-ALT-E de la memoria ...) –

+0

Sí, los he habilitado a todos. –

+2

Mire la ventana Salida (Ctrl + Alt + O). ¿Cuáles son las últimas líneas que ves antes de que termine la sesión de depuración? ¿Dice 'El programa '[1140] MyApp.vshost.exe: Managed' ha salido con el código 0 (0x0) .'? –

Respuesta

3

Tuve un problema similar y aunque esta podría no ser una solución para tu caso anterior, espero que ayude a alguien más.

me tuvieron que hacer referencia a una clase que fue escrito por otra persona que se parecía a esto:

public class ItemPrice 
    { 
     public bool sucessIndicator 
     { 
      get { return sucessIndicator; } 
      set { sucessIndicator = value; } 
     } 

     public string productCode 
     { 
      get { return productCode; } 
      set { productCode = value; } 
     } 

     public string description 
     { 
      get { return description; } 
      set { description = value; } 
     } 

     public double price 
     { 
      get { return price; } 
      set { price = value; } 
     } 
    } 

A primera vista se ve bien bien ... hasta que se note que cada propiedad hace referencia a él mismo y no un miembro privado.

Así:

public string description 
     { 
      get { return description; } 
      set { description = value; } 
     } 

hace referencia a si mismo de forma recursiva y provoca una excepción de desbordamiento de pila que no fueron mostrados a mí en VS aunque tenía todas las excepciones habilitadas. Simplemente detuvo la depuración sin previo aviso.

La solución era, por supuesto, para cambiarla de la misma familia:

public string description 
     { 
      get; 
      set; 
     } 

la esperanza de que ayude a alguien.

+0

, pero ¿hay alguna manera de interrumpir el stackoverflow antes de que se bloquee el depurador VS? – drzaus

Cuestiones relacionadas