2010-06-29 14 views
9

Ocasionalmente, durante la depuración, el depurador salta al azar. Algunas veces entro en una función dentro de otra función y en lugar de ir a la siguiente línea, salta a un lugar aparentemente aleatorio en el futuro. a veces a una línea en parte a través de otra función. Siempre parece respetar puntos de interrupción, es decir, si un punto de interrupción se establece en el futuro, nunca pasará por alto.Depurador de Visual Studio 2010 omitiendo

Estoy ejecutando 64 bit Win 7 y visual studio 2010 ultimate. No estoy usando hilos. Esto nunca me pasó en visual studio 2008. ¿Cómo puedo solucionar esto?

+0

¿qué idioma (C++ nativo o un lenguaje basado en .NET)? ¿Estás seguro de que la función a la que estás ingresando no está compilada con optimizaciones (lo que definitivamente puede confundir a un depurador). –

+0

Estoy usando vb.net. La configuración de la solución está configurada en 'Depurar' Plataforma 'Cualquier CPU' – Michael

+0

¿Usar subprocesos? Importante mencionar eso. –

Respuesta

4

Me encuentro con problemas similares para depurar un programa C# con Visual Studio 2010 en una máquina con XP. El depurador salta al azar a alguna otra línea o al siguiente punto de interrupción.

Parece que Microsoft ha publicado una solución para esto en el SP1.

+2

Acabo de comprobar el enlace de Microsoft anterior para una actualización. De acuerdo con la publicación del 12/8/2010, una solución para esto está en la versión beta del paquete de servicio VS. ¡Aleluya! Ahora solo tengo que esperar hasta que el SP sea definitivo porque tengo mucho miedo de instalar el código beta. – user171197

+0

Tuve el mismo problema. Instalado la versión de lanzamiento de SP1, problema resuelto. ¡Gracias por publicar esto! –

+1

Corrección: It * was * fixed. :( –

3

¿Está seguro de que el ensamblado que su código llama tiene símbolos de depuración? Quizás estés haciendo referencia a un archivo DLL que se compiló en el modo de lanzamiento.

5

¿Tiene las optimizaciones activadas? Si el programa está altamente optimizado, el orden de ejecución se puede descartar, y las cosas se pueden expandir o reorganizar de maneras que no siempre son claras.

3

Esto puede suceder cuando el depurador se ejecuta contra archivos pdb que no coinciden con el código fuente que está viendo. Asegúrese de que el contenedor (o de dónde se está ejecutando) esté actualizado y se haya creado a partir del mismo código fuente que está ejecutando en el depurador.

0

Haga clic en Reconstruir solución.

+0

no funciona, .. – toto

3

¿Está utilizando hilos o trabajadores de fondo? Al depurar, creo que todos los hilos están en pausa por lo que podría estar cambiando entre ellos. De lo contrario, puede tener información de depuración obsoleta, eliminar los directorios bin y obj y hacer una compilación limpia.

3

Esto también puede suceder cuando la configuración de su solución Debug está actualizada, pero intenta depurar el programa en la configuración de Release (si no está actualizada) ... o viceversa.

Puede alternar entre ejecutarse en la configuración de depuración o liberación utilizando el menú desplegable junto a la flecha verde 'reproducir' en la parte superior de la pantalla.

+0

Está en VB.NET, el menú desplegable Configuración de la solución no se muestra de manera predeterminada. Personalice la barra de herramientas para incluirlo. –

1

Tuve un problema similar en Visual C++ 2008 en Windows 7 de 32 bits recientemente. Varios minutos antes de que apareciera el problema por primera vez, se mostraba una ventana de diálogo del sistema "VC.exe encontró un problema y debe cerrarse" pero la ventana de Visual C++ parecía sobrevivir.

Después de que apareció el problema por primera vez, intenté varias formas para que vuelva a funcionar, como reconstruir la solución o reiniciar Visual Studio. Sin embargo, continuó comportándose extraño: no se pudo vincular con un archivo objeto que no había tocado durante semanas, se muestra "El punto de interrupción no se golpeará en este momento. El código fuente es diferente de la versión original. " etc.

Nada me ayudó hasta que reinicié la computadora y finalmente rehice la solución (dos veces, en realidad).