visual ver ventana variable values studio see locales inspeccion depuracion debug autos c# debugging variables visual-studio-express watch

c# - ver - visual studio inspection window



¿Cómo puedo "ejecutar hasta que esta variable cambie" cuando se depura? (8)

Al depurar mi C #, a menudo quiero saber cuándo cambia el valor de una variable y luego investigo el estado del programa.

Actualmente, lo hago así:

  1. Mira la lista de la variable ofensiva.
  2. Físicamente correo no deseado F10 (atajo para Step Over) hasta que vea el cambio de valor.

Sin embargo, el número de F10 requerido es molesto.

Seguramente esto ha sido automatizado, pensé. Pero no puedo encontrar esta característica en mi Microsoft Visual C # Express , lo que me sorprende. Después de todo, Watch-list resalta automáticamente los valores modificados en rojo brillante.

¿Me estoy perdiendo de algo?


  1. Establezca el punto de interrupción donde desea que el código se detenga
  2. Abra la ventana Puntos de ruptura (Depurar -> Windows -> Puntos de interrupción)
  3. Haga clic derecho en su punto de interrupción y seleccione la condición ...
  4. Establezca la condición para que sea el nombre de la variable y seleccione el botón de radio Ha cambiado.
  5. Haga clic en Aceptar y luego depure como de costumbre :)

Así es como lo hago en Visual Studio. Establezca un punto de interrupción presionando F9 o haciendo clic en el margen izquierdo. A continuación, haga clic derecho sobre el punto rojo que aparece y seleccione el comando Condición. También hay otras opciones allí.

Sin embargo, esto puede no ser compatible con Visual Studio Express.


Podría escribir una instrucción if que verifique un cambio y que suceda un punto de interrupción dentro de esa instrucción if, por lo que se rompe inicialmente, luego haga clic en reanudar, continúa hasta que llegue a este punto de interrupción.


Si desea ver el cambio de variable en algún punto de interrupción, en lugar de detectar exactamente dónde se modificó, configure el punto de corte, haga clic con el botón derecho y elija "Condición". Digamos que su nombre de variable es X y su valor actual es A. Ingrese "X! = A" en el campo de condición.

Ahora el punto de ruptura solo se golpeará después de que X cambie a algún valor que no sea A.


Use Debugger.Break en función de alguna condición de tiempo de ejecución, o haga clic con el botón derecho en algún punto de interrupción, y elija break condicional -> ha cambiado

Editar: no sé nada de esto en Express


puedes usar puntos de interrupción condicionales

ver esto


Los puntos de interrupción condicionales son lo que buscas, pero parece que no están disponibles en Visual Studio Express.

En Visual Studio (no Express), la forma en que funciona es que crea un punto de interrupción condicional con una expresión igual al valor de su reloj y "Ha cambiado" como condición del punto de interrupción.


Truco simple para la edición Express:

private string myValue; public string MyValue { set { if (this.myValue != value) Debugger.Break(); this.myValue = value; } }