2009-10-01 13 views
7

¿Qué diablos podría estar causando esto ....visual studio 2008 depurador loco omitiendo!

Estoy desarrollando mi aplicación web C# 3.5 ASP.NET MVC, al igual que hago todo el día todos los días. No haciendo nada inteligente, solo métodos estándar en clases que llaman a otros métodos ...

Creo mi proyecto, inicio una url en Chrome y obtengo la respuesta que espero. Adjunto el depurador a w3wp.exe, establezco un punto de interrupción y f5 en Chrome. El depurador se detiene en el punto de interrupción como esperaba ...

Pulso f11 para recorrer el código, y se moverá a la siguiente línea/línea de parte, hágalo varias veces y saltará al azar a una línea arbitraria en la ruta de ejecución !!!

La línea que se salta es una línea que se habría ejecutado, no salta a ninguna línea anterior, simplemente decide perder un montón de líneas entre ellas ?? !!!

Nunca he visto esto antes, ¿cómo diablos depuro lo que está pasando ???

Por un tiempo pensé que quizás Chrome está haciendo dos solicitudes, y el depurador no se está saltando realmente, es simplemente intercambiando entre los hilos de solicitud por lo que parece como si estuviera saltando, ¡pero eso no es todo! Si fijo un punto de interrupción en cada línea i puedo evitar parcialmente, pero tomar la siguiente:

1. public string Method() 
2. { 
3.  string s; 
4.  s = OtherMethod(); 
5.  return s; 
6. 
7. } 

el tipo de comportamiento im ver (con un punto de interrupción en cada línea de arriba) es 1,2,3,4 , 5,6,7 (es decir, no entrará en OtherMethod();

Otro comportamiento im seeing es 1,2,3 y luego eso es todo, de vuelta a cualquier lugar llamado Método() o incluso más lejos: s

Gracias

+0

depuración/release? ____ – EFraim

+0

modo de depuración______ –

Respuesta

6

¿Has probado a limpiar tu solución?
- (las carpetas bin y obj en su carpeta de proyectos)

¿Eliminar archivos de la carpeta de archivos asp.net temporales?

  • (generalmente C: \ windows \ Microsoft.NET \ Framework \ v2.0.50727 \ ASP temporal.NET Archivos)
  • Es probable que tenga que ejecutar "iisreset/stop" en el símbolo del sistema en primer lugar, a continuación, volver a habilitar con iisreset/start
+0

wheres that located? –

+0

haciendo todo esto y las sugerencias de Atom parecen haberlo solucionado, gracias –

+0

marca como respuesta? – Sameer

0

Parece que está intentando pasar por un binario que ha sido optimizado. optimizador puede hacer un montón de cosas que hacen que sea difícil de depurar incluyendo, pero no limitado a:

  • declaraciones Reordenación de
  • funciones inline
2

No estoy seguro si esto ayudará. Me he encontrado con problemas antes de que el código compilado en un ensamblado relacionado no coincida con lo que el depurador cree que tengo. La forma en que siempre lo resolví fue apagar frist VS, luego reiniciar y volver a cargar el proyecto, luego hacer una reconstrucción completa de la solución. A continuación, cambie el modo de compilación desde depuración-> liberación o liberación-> depuración, y realice una última reconstrucción. Honestamente, nunca he averiguado qué lo causa. Solo sucede en ocasiones.

+0

haciendo todo esto y las sugerencias de Jeff parecen haberlo solucionado, gracias –

0

que he visto algo similar en 2.0 cuando no lo hago Asegúrate de que mi caché del navegador sea clara.

0

Encienda el desmontaje y vea si su escalonado tiene más sentido. Si está seguro de que no está saltando entre hilos, entonces el compilador probablemente haya decidido que parte de su código no es lo suficientemente importante como para pasar (es decir, no hace nada).

Cuestiones relacionadas