Mi depurador C# no funciona correctamente. A veces omite puntos de corte y línea de códigos. He revisado el administrador de configuración. Incluso he intentado agregar mis proyectos a nuevos archivos de solución. ¿Puede alguien ayudarme?¿Por qué mi depurador C# omite puntos de interrupción?
Respuesta
Asegúrese de que las optimizaciones estén deshabilitadas (este es el defecto de la configuración de depuración, pero están habilitadas en la configuración de la versión). Las optimizaciones del compilador pueden interferir con el depurador ...
cómo puedo ajustar la optimización del compilador –
Si está usando Visual Studio: haga clic con el botón derecho en el proyecto en el explorador de soluciones, luego seleccione la pestaña "Generar". Debería haber una casilla allí titulada "optimizar código". (Al menos, esto se aplica a VS 2005 y 2008. No sé sobre versiones anteriores). – Odrade
¿Está seguro de que compiló correctamente? Me parece que estás depurando una versión anterior, lo que puede suceder si falla la compilación (quizás una falla en el código, tal vez los archivos son de solo lectura).
Estoy compilando proyectos individuales en la solución, pero todavía el mismo problema –
Parece que el código fuente no está sincronizado con los archivos PDB. La solución más fácil es limpiar la solución (que borra todos los dlls de la carpeta bin). Recompile, y luego intente caminar de nuevo.
Si aún falla, intente cerrar la solución y eliminar las carpetas "obj". Y luego intenta de nuevo.
y también comprobar que está compilando en modo de depuración - algo que he hecho a menudo ("por qué no está pasando a través ?!") no obtener punto de ruptura
lo he intentado pero todavía el mismo problema –
Mi lista de verificación depuración:
- Asegúrese de que su adhiriéndose al proceso mediante el tipo de código correcto - si el proceso tiene tanto no administrado y el código administrado, entonces no depender de "auto" a trabajar para usted, de manera explícita indicar qué tipo de código de su tratando de depurar
- Ir al modu ventana (Depurar -> Windows -> Módulos, es posible que deba habilitarla en el menú "Personalizar ..."
- Asegúrese de que el ensamblaje que ha intentado depurar se haya cargado y de que se hayan cargado los símbolos - Si no se han cargado, haga clic derecho en ese módulo y seleccione "cargar símbolos"
- Abra su archivo de código y coloque su punto de interrupción; si aparece con el pequeño símbolo de advertencia, mire y vea lo que dice,
- Es posible que deba ir a "herramientas -> opciones -> depuración -> general" y desmarcar "Habilitar solo mi código (solo administrado)"
- Es posible que también desee desmarcar "Requerir archivos fuente para que coincidan exactamente con la versión original" , si crees que tus fuentes pueden ser ligeras (Tenga cuidado, sin embargo, ya que esto puede llevar a la depuración con las fuentes completamente incorrectas, lo que puede ser muy confuso)
En ciertos casos, es posible que su módulo no se cargue en el punto donde adjunte su depurador (por ejemplo, si tiene algún tipo de complemento en archetecutre, y los ensamblados de complementos solo se cargan cuando los usa por primera vez). En estos casos, todo lo que puede hacer es intentar y asegurarse de que todo esté preparado para cuando se cargue el módulo.
gracias por una respuesta tan detallada. Lo he intentado todo pero todavía tengo el mismo problema. –
Desactivando "Just My Code ..." lo hizo por mí. Gracias. –
Gran lista. Me ayudó a salir – Arnej65
Si se omiten métodos enteros, observe la fuente y vea si el atributo System.Diagnostics.DebuggerStepThroughAttribute está presente.
A pesar del nombre, EVITA que el depurador recorra el método.
no se salta algo de tiempo desde la mitad de la mathod y algunas veces completa mathod. –
¡Brillante! Pensé que me estaba volviendo loco cuando un método personalizado agregado a una clase generada desde XSD no quería depurar. La razón fue que 'xsd.exe' decoró el código que generó con este atributo. Los puntos de ruptura creados antes de F5 a veces se golpean, pero no los nuevos puntos de interrupción, y no siempre. – ajeh
Si al menos algunas veces se alcanza el punto de ruptura, significa que probablemente todas las configuraciones estén bien.
Los éxitos que faltan pueden ser causados por algunos efectos secundarios, por ejemplo: la evaluación de propiedades por el depurador (al menos VS omite los puntos de interrupción durante la evaluación de propiedades de depuración) o algunas herramientas de espionaje (pero estos son generalmente atrapar por depurador)
Si cree que este puede ser el caso, apague las herramientas de espionaje y disable the property evaluation by the debugger.
Esto a veces puede no ser suficiente, por ejemplo: si su propiedad devuelve una colección, mostrando p. a Count()
evaluará la propiedad, por lo que también eliminará todas las referencias de la propiedad de las ventanas del reloj, etc.
Esto funcionó en VS 2017, vaya a Herramientas> Opciones, luego en la Ventana de Opciones vaya a la sección Depuración. Habilitar - "Habilitar el paso de origen de .NET Framework"
Desactivar "Propiedades del proyecto/Crear/Optimizar código" funcionó para mí.
- 1. ¿Por qué mi proyecto Eclipse tiene puntos de interrupción phantom depurador?
- 2. clojurescript puntos de interrupción
- 3. android depurador no se detiene en los puntos de interrupción
- 4. ¿Por qué Eclipse CDT ignora los puntos de interrupción?
- 5. ¿Por qué EnumChildWindows omite niños?
- 6. ¿Por qué mi depurador es tan lento?
- 7. ¿Por qué duplican mis puntos de interrupción en Visual Studio?
- 8. ¿Por qué ReadDirectoryChangesW omite eventos?
- 9. ¿Por qué tengo puntos de interrupción desconocidos en mi pestaña Marcadores?
- 10. ¿Por qué los puntos de interrupción condicionales ralentizan tanto mi programa?
- 11. Establecimiento de puntos de interrupción en Java
- 12. Puntos de interrupción páginas aspx
- 13. ¿Por qué se ejecuta tan lento el depurador?
- 14. ¿Cómo elimino los puntos de interrupción del depurador PyDev de los archivos eliminados?
- 15. ¿Por qué debería bloquearse el depurador VS2010?
- 16. El depurador solo se detiene en los puntos de interrupción, no "pasará"
- 17. Puntos de interrupción de omisión de Eclipse
- 18. SampleSyncAdapter Puntos de interrupción que no funcionan
- 19. Puntos de interrupción condicional Eclipse roto?
- 20. Puntos de interrupción ininterrumpidas (puntos de rastreo) en Javascript?
- 21. ¿Cómo funcionan los puntos de interrupción en el código C++?
- 22. No puedo depurar usando puntos de interrupción
- 23. ¿Por qué el depurador C# de Visual Studio 2010 continúa en lugar de pasar por alto?
- 24. Depuración de Android con Eclipse: sin puntos de interrupción
- 25. Flash Builder desactiva los puntos de interrupción (a veces)
- 26. ¿Deshabilita/elimina puntos de interrupción secundarios?
- 27. Xdebug ignora los puntos de interrupción
- 28. ¿No se pueden establecer puntos de interrupción en un setter de propiedad automática? ¿Por qué?
- 29. ¿Por qué el depurador de scripts de Google Chrome no me permite establecer un punto de interrupción?
- 30. Puntos de interrupción constantes? ¿Cómo eliminarlos?
¿La optimización está deshabilitada? ¿Depurar o liberar? – Guillaume
¿Qué es 'a veces'? –
¿cómo puedo verificar la optimización? veces significa que cada vez que uso el depurador se saltará después de pasar por algunas líneas –