2011-07-12 31 views
100

¿Existe alguna manera fácil de establecer puntos de interrupción condicionales en Visual Studio?Cómo establecer puntos de interrupción condicionales en Visual Studio?

Si quiero llegar a un punto de interrupción solo cuando el valor de una variable se convierte en algo, ¿cómo puedo hacerlo?

+11

Tenga en cuenta que la edición Express no tiene esta funcionalidad. –

+0

Estoy usando Express 2015 y tiene la capacidad de puntos de interrupción condicionales –

Respuesta

129

Establezca un punto de interrupción como de costumbre. Haga clic derecho. Haga clic en Condición.

+1

En VS 2015 debe pasar el puntero sobre el punto de interrupción y hacer clic en el ícono de ajustes para establecer las condiciones –

9
  1. establecer punto de interrupción en la línea
  2. clik derecho sobre bola roja
  3. Chose conditioal punto de interrupción
  4. condición de instalación
5

Crear un punto de interrupción como lo haría normalmente, haga clic derecho en el punto rojo y seleccione "condición".

0

crear una función condicional punto de interrupción

1) En la ventana Puntos de interrupción, haga clic en Nuevo para crear un nuevo punto de interrupción.

2) En la pestaña Función, escriba Invertir para Función. Escriba 1 para Línea, escriba 1 para Carácter y luego configure Idioma como Básico.

3) Haga clic en Condición y asegúrese de que la casilla de verificación Condición esté seleccionada. Escriba instr.length> 0 para Condición, asegúrese de que la opción es verdadera esté seleccionada y luego haga clic en Aceptar.

4) En el cuadro de diálogo Nuevo punto de interrupción, haga clic en Aceptar.

5) En el menú Depurar, haga clic en Inicio.

4
  1. Establecer un punto de interrupción como de costumbre
  2. Haga clic derecho en el punto de interrupción y seleccione Condición
  3. Usted verá un cuadro de diálogo que dice "Breakpoint Condición"
  4. Ponga una condición en el campo, por ejemplo, "I == 5"

El punto de interrupción sólo va a golpear cuando i es 5.

1

Ajuste el breakpoint como lo hace normalmente, haga clic derecho en el punto de ruptura y seleccione la opción condion y establece su condición.

5
  1. Establezca un punto de interrupción como de costumbre.
  2. Haga clic con el botón derecho en el marcador de punto de interrupción
  3. Haga clic en "Estado ..."
  4. Escribe una condición, es posible utilizar nombres de variables
  5. Seleccione 'es verdad' o 'ha cambiado'
28

Visual Studio proporciona un montón de opciones para los puntos de interrupción condicionales:

establecer cualquier de estos se

  1. establecer un punto de ruptura
  2. clic derecho sobre el punto de ruptura, y en el menú emergente selecciona una opción Ion que te sirve.

Estas opciones son las siguientes:

  • Puede establecer una condición, con sede fuera de una expresión de código que se proporciona (seleccionar Condición en el menú emergente). Por ejemplo, puede especificar que foo == 8 o alguna otra expresión.
  • Puede hacer que los puntos de interrupción se activen después de haberlos golpeado una cierta cantidad de veces. (seleccione Conteo de visitas en el menú emergente). Esta es una opción divertida para jugar, ya que en realidad no estás limitado a romper un conteo determinado de hits, pero también tienes opciones para algunos otros escenarios. Te dejo explorar las posibilidades.
  • Puede establecer filtros en el proceso de identificación, ID del hilo, y el nombre de la máquina (seleccione Filtro en el menú emergente)
3

En Visual Studio 6.0

Alt + F9! !!

+1

-1) Esto no funciona en VS 2012 2) Esta pregunta ya tiene muchas otras (mejores) respuestas y 3) ¿a quién le importa VS 6.0 (lanzado en 1998)? 4) Incluso si alguien se preocupa por VS 6, la pregunta está etiquetada con .Net que no tiene soporte hasta la próxima versión de VS (Visual Studio .Net) –

+3

Bueno, las otras respuestas no funcionan en VS 6.0. Así que publiqué una solución. – Vorac

36

Cuando se está utilizando la edición Express, puede intentar esto:

#if DEBUG 
    if(fooVariable == true) 
     System.Diagnostics.Debugger.Break(); 
#endif 

si la declaración se asegura de que la liberación de construcción breakepoint no estará presente.

+1

Funciona en la edición profesional, también –

+3

Esto tiene una gran ventaja de rendimiento/ahorro de tiempo. Estaba iterando a través de cada potencial 'id' en un programa mío (solo alrededor de 3.5 millones), que solo toma un par de segundos. Estaba intentando usar el punto de interrupción condicional, pero como no estaba en una rama condicional, ralentizó la velocidad de ejecución hasta el punto en que después de unos minutos terminaba la sesión de depuración. El uso del punto de compilación compilado lo hizo instantáneo. –

14

Sólo otra manera de hacerlo, (o si está utilizando expreso) añadir la condición de código:

if(yourCondition) 
{ 
    System.Diagnostics.Debugger.Break(); 
} 
3

Escribiendo la condición real puede ser la parte difícil, por lo que tienden a

  1. Establecer un punto de interrupción periódica
  2. Ejecutar el código hasta el punto de ruptura es golpeado por primera vez
  3. Utilice la ventana Inmediato (Depuración> Windows> Inmediato) para pruebe su expresión.
  4. Haga clic con el botón derecho en el punto de interrupción, haga clic en Condición y pegue en su expresión.

Las ventajas de utilizar la ventana Inmediato

  • Tiene intelisense
  • Puede estar seguro de que los variables de en la expresión son alcance cuando se evalúa la expresión
  • Puede estar seguro de que su expresión devuelve verdadero o falso

En este ejemplo se rompe cuando el código se refiere a una tabla con el nombre "Configuración"

table.GetTableName().Contains("Setting") 
Cuestiones relacionadas