Tengo un programa que tiene una variable que nunca debería cambiar. Sin embargo, de alguna manera, está siendo cambiado. ¿Hay alguna manera de detener el depurador cuando se modifica esa variable de miembro en particular?Visual Studio: ¿cómo puedo detener el depurador cuando se modifica una variable miembro?
Respuesta
Establezca un punto de interrupción de datos para detener la ejecución cada vez que cambie alguna variable.
Rompe la inicialización de tu variable, o en algún lugar donde tu variable esté visible, necesitas poder obtener su dirección en la memoria. Luego, en los menús, elija Depurar -> Nuevo punto de interrupción -> Nuevo punto de interrupción de datos. Ingrese "&var
" (con var
reemplazado por el nombre de su variable.)
Esto irrumpirá en el depurador en la línea exacta de código que modifica su variable.
más documentación aquí:
Puede establecer el punto de interrupción condicional en los lugares donde se usa la variable.
En Visual Studio configure el punto de interrupción presionando F9 cuando el cursor esté en la línea donde desea establecer el punto de interrupción.
A continuación, haga clic derecho en el punto de interrupción y seleccione Condición.
escriba su condición como
n != 5
Buena suerte.
Aquí está a link from MSDN.
Si se está modificando mediante una cesión u otra actualización directa, el punto de interrupción de datos funcionará. Sin embargo, si está siendo modificado por algún otro medio, por ejemplo, una sobrescritura de búfer, no estoy seguro de si le dirá exactamente cuándo ocurre. Sólo algo para tener en cuenta.
A menos que me equivoque seriamente, un punto de interrupción de datos se establece en la * ubicación de memoria * y no en el identificador. (Es por eso que tienes que dar una expresión que evalúe una dirección cuando establezcas una). Por lo tanto, debería atrapar desbordamientos de búfer, pila destruida, corrupción de montón y todas esas cosas buenas. – Charlie
Eso suena bien. Supongo que el problema en el que estoy pensando es cuando se optimiza el nombre de un identificador y ni siquiera se puede establecer el punto de interrupción. –
No se preocupe, es una característica de hardware, en serio. –
- 1. ¿Cómo puedo detener la ejecución en el Visual Studio Debugger cuando una variable miembro privada cambia de valor?
- 2. ¿Qué significa cuando una variable aparece en rojo en el depurador de Visual Studio C++?
- 3. ¿Cómo puedo detener el depurador en un valor de variable en particular?
- 4. ¿Cómo detener una compilación en Visual Studio?
- 5. El depurador de Visual Studio se bloquea al visualizar una variable
- 6. ¿Cómo redirecciono el resultado del depurador de Visual Studio?
- 7. Detener el funcionamiento actual en Visual Studio
- 8. ¿Cómo detener el depurador de Visual Studio para que no pase al ensamblaje?
- 9. Reconstruir la plantilla T4 cuando se modifica el archivo externo
- 10. ¿Es posible detener el enfoque automático de Visual Studio cuando el depurador llega a un punto de interrupción?
- 11. ¿Puedo crear una macro de Visual Studio para iniciar un proyecto específico en el depurador?
- 12. Cómo hacer que el depurador de Visual Studio se detenga cuando se produce una excepción manejada en C#
- 13. ¿Activar una acción cuando se modifica document.cookie?
- 14. Depurador de Visual Studio 2010 omitiendo
- 15. visual studio 2008 depurador loco omitiendo!
- 16. ¿Cómo se puede detener Visual Studio reorganizar su Windows al depurar
- 17. Visual Studio - Confirmar que no se detiene cuando falla
- 18. Interrumpir cuando un valor cambia con el depurador de Visual Studio
- 19. Depurador de Visual Studio No se adjunta cuando está en la raíz de un sitio web
- 20. Cómo detener Visual Studio 2010 en el error de compilación
- 21. Visual Studio: ¿evita que F11 inicie el depurador?
- 22. ¿Puedo ajustar las opciones de Visual Studio "Break cuando se arroja una excepción" programáticamente?
- 23. Continuando en el depurador de Visual Studio después de que ocurra una excepción
- 24. Cómo detener a IE preguntándole qué depurador elegir cuando ** intenta ** depurar?
- 25. Visual Studio - Evitar detener la depuración se cierre Internet Explorer
- 26. ¿Cómo puedo usar Web.debug.config en el servidor de depurador visual studio incorporado?
- 27. ¿Ver matriz en el depurador de Visual Studio?
- 28. Salga de un bucle en el depurador de Visual Studio
- 29. ¿Cómo evito que el depurador de Visual Studio enfoque la ventana cuando se golpea un punto de interrupción?
- 30. Conozca la dirección de una variable en Visual Studio
Para completar: puede haber otras cosas que cambian un valor que su código, y esas cosas no son capturadas por un punto de interrupción de memoria: http://stackoverflow.com/questions/2362688/global-variable-is-changed -but-memory-breakpoint-is-not-hit – Suma