c# - puede - Advertencia de punto de interrupción de Visual Studio
punto de interrupcion no comprobado visual studio code (5)
Compruebe la configuración del proyecto
Asegúrese de no marcar la opción de optimización de código y asegúrese de que los símbolos de depuración estén marcados.
Observe que cuando cambia la configuración, otras configuraciones también pueden cambiar y es posible que no vea. Asegúrese de que los valores sean correctos para la configuración que está intentando compilar.
Eliminar los archivos de salida
Elimine físicamente todas las DLL, PDB y EXE generados. Luego compila nuevamente para generar los archivos. A veces, Visual Studio puede "perderse" y "olvidarse" de sobrescribir los archivos de salida cuando construye su solución.
Reinicia tu computadora
Suele solucionar el 99% de los problemas. Ya tuve algunos problemas con Visual Studio y reiniciarlo o la computadora resolvió el problema.
Al depurar mi código, a menudo coloco puntos de interrupción para verificar los valores de las variables locales para asegurarme de que todo esté en el camino correcto.
Últimamente, cuando hago cambios en mi código y los vuelvo a compilar, todos mis puntos de interrupción se convierten en el contorno de un círculo (en lugar de un círculo rojo completo) y me da un error que dice:
El punto de interrupción no será alcanzado actualmente. No hay código ejecutable asociado con esta línea. Las posibles causas incluyen: compilación condicional u optimizaciones compatibles.
Lo extraño de este problema es que simplemente puedo eliminar y agregar el punto de interrupción y todo funcionará completamente bien.
No estoy usando ningún tipo de compilación condicional u optimizaciones compatibles. ¿Alguien sabe qué significa esto o cómo solucionarlo? Se vuelve bastante molesto reemplazar 10-12 puntos de interrupción cada vez que compilo.
Agregar esta respuesta al hilo anterior en caso de que alguien como yo esté rastreando este misterio en una aplicación ASP.Net más antigua. Tuve un código web detrás que no respondió a los puntos de interrupción con la advertencia del depurador "... sin código ejecutable ...". Me estaba metiendo la cabeza ya que todas las demás páginas funcionaban bien. Hice lo limpio, reconstruí, purgué los archivos temporales de ASP.Net, sin alegría.
El culpable de este archivo fue la inclusión de varias directivas #ExternalSource que rodean algunas de las declaraciones de variables miembro. Una vez que se eliminaron y se reconstruyó el proyecto, se restauró el comportamiento del punto de ruptura. Esas líneas de ExternalSource aparecían en la sección generada del código subyacente. No estoy seguro de por qué estaban allí.
El uso de la directiva del precompilador #line parece afectar también el comportamiento de los puntos de interrupción, como acabo de descubrir.
Esto puede suceder por algunas razones
- El código que utiliza el depurador es diferente del código que ejecuta la aplicación
- El archivo pdb que utiliza el depurador es diferente del código que ejecuta la aplicación
- El código que está ejecutando la aplicación se ha optimizado y la información de depuración se ha eliminado.
- El código en el que tiene puntos de interrupción aún no se ha cargado en el proceso (asumiendo que las cosas anteriores no son las culpables)
- Si está adjuntando el depurador, preste atención a qué .net framework está adjuntando (he tenido problemas con el uso de .net 4 cuando el código era todo .net 2.0)
- La asamblea que tienes también está en el GAC. Esto podría suceder si, por ejemplo, instaló su programa para poder depurarlo, pero el instalador puso la dll en el GAC.
- Elimine la referencia y vuelva a agregarla (gracias a forsvarir ). Normalmente, esto ocurre cuando el proyecto al que se hace referencia no está en la solución, y VS copiará la dll del directorio bin de otro proyecto. Sabrá que este fue el problema cuando intente volver a agregar la referencia y no pueda encontrar el proyecto :)
Es bastante difícil averiguar qué está pasando aquí, pero sugeriría usar el visor de registro de fusión para ver qué se está cargando y desde dónde se está cargando y luego puedes mirar la DLL y ver si es un código antiguo, etc.
Sé que esta es una publicación antigua, pero es lo suficientemente oportuna, ya que estaba buscando cualquier otra razón por la que podría tener este problema.
Dicho esto, es posible que también desee consultar los "Archivos temporales de ASP.NET" en sus directorios c: / Windows / Microsoft.NET / [Frameworks] si está creando una aplicación web, ya que estos archivos suelen ser la causa de mi experiencia.