2011-05-18 16 views
22

¿cómo puedo configurar el depurador para que pare cuando alguna variable particular tiene un valor definido ?. Por ejemplo, tengo un código que se cuelga y que hace un bucle de 10000 veces para hacer algo de postprocesamiento. Sé que el error podría producirse a partir de la iteración de 7000, así que quiero parar a partir de ahí, evitando el bucle manual de los primeros 7000. Estoy usando visual studio 2008 y 2010 con C#, creo que la solución será la lo mismo para ambos.¿Cómo puedo detener el depurador en un valor de variable en particular?

Respuesta

35

Lo que está buscando es un punto de interrupción condicional. Aquí se explica cómo configurarlo suponiendo que el nombre de la variable es i.

  • Establecer un punto de interrupción normales en la línea después de que el valor se establece
  • Haga clic derecho sobre la parte roja del punto del punto de ruptura y seleccione "Condición"
  • Introduzca la condición que desea comprobar. Ejemplo: i == 10000
  • pulsa OK

Ahora ejecute el escenario de nuevo y el punto de interrupción serán golpeados sólo cuando el valor de i es igual 10000.

Una palabra de advertencia. Puede poner prácticamente cualquier expresión legal de C# en un punto de corte condicional, pero se evaluará cada vez que se golpee el punto de ruptura. Eso puede llevar a una depuración muy lenta si usa un condicional complejo

+0

Excelente @Jared, ese menú contextual también ofrece a otros mecanismo de parada, nunca cruces por mi mente haciendo clic derecho en la bola roja, gracias. – mjsr

+0

¿Qué sucede si sé solo el valor de la variable (sin nombre de variable)? ¿Es posible descifrar el código si alguna de las variables locales tiene un valor asignado que estoy buscando? – matandked

-2

La manera fácil de hacer esto es:

si (nameVariable = X) { BreakPoint: nameVariable; }

+2

Esa es la manera más difícil, ya que tiene que cambiar el código. – sbi

0

Abra la ventana de punto de interrupción y cree un nuevo punto de interrupción de datos en su menú.

Cuestiones relacionadas