2009-05-16 17 views

Respuesta

9

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í:

http://msdn.microsoft.com/en-us/library/350dyxd0.aspx

+0

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

2

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.

0

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.

+1

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

+0

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. –

+0

No se preocupe, es una característica de hardware, en serio. –

Cuestiones relacionadas