2011-07-12 13 views
100

C'è un modo semplice per impostare i punti di interruzione condizionali in Visual Studio?Come impostare i punti di interruzione condizionali in Visual Studio?

Se voglio raggiungere un punto di interruzione solo quando il valore di una variabile diventa qualcosa, come posso farlo?

+11

Nota che Express Edition non dispone di questa funzionalità. –

+0

Sto utilizzando Express 2015 e ha la capacità di punti condizionali di interruzione –

risposta

129

Impostare un punto di interruzione come al solito. Fare clic destro su di esso. Fare clic su condizione.

+1

In VS 2015 è necessario passare il mouse sopra il punto di interruzione e fare clic sull'icona dell'ingranaggio per impostare le condizioni –

9
  1. Imposta punto di interruzione sulla linea
  2. clik destro sulla palla rossa
  3. Chose conditioal breakpoint
  4. condizione Setup
5

Creare un punto di interruzione come si farebbe normalmente, fare clic destro il puntino rosso e seleziona "condizione".

0

creare una funzione condizionale breakpoint

1) Nella finestra Punti di interruzione, fare clic su Nuovo per creare un nuovo punto di interruzione.

2) Nella scheda Function, digitare Reverse for Function. Digitare 1 per Linea, digitare 1 per Carattere, quindi impostare Language to Basic.

3) Fare clic su Condizione e assicurarsi che la casella di controllo Condizione sia selezionata. Digitare instr.length> 0 per Condition, assicurarsi che sia selezionata l'opzione true, quindi fare clic su OK.

4) Nella finestra di dialogo Nuovo punto di interruzione, fare clic su OK.

5) Nel menu Debug, fare clic su Avvia.

4
  1. Impostare un punto di interruzione, come al solito
  2. Fare clic destro sul punto di interruzione e selezionare Condizione
  3. Vedrete una finestra di dialogo che dice "Punto di interruzione Condition"
  4. Mettere una condizione nel campo per esempio "I == 5"

Il punto di interruzione non potrà che colpire quando i è 5.

1

Impostare il breakpoint come si fa normalmente, fare clic destro il punto di rottura e selezionare l'opzione condion e imposta la sua condizione.

5
  1. Impostare un punto di interruzione come al solito.
  2. Fare clic con il pulsante destro del mouse sul punto di interruzione
  3. Fare clic su "Condizione ..."
  4. Scrivi una condizione, è possibile utilizzare i nomi delle variabili
  5. Selezionare 'È vero' o 'è cambiato'
28

Visual Studio fornisce un sacco di opzioni per i punti di interruzione condizionali:

di impostare qualsiasi di questi si

  1. impostare un punto di interruzione
  2. tasto destro del mouse sopra il punto di rottura, e nel menu a comparsa si seleziona un opt che ti offre.

Queste opzioni sono le seguenti:

  • È possibile impostare una condizione, in base al largo di un'espressione codice che si fornisce (selezionare Condizione dal menu a comparsa). Ad esempio puoi specificare che foo == 8 o qualche altra espressione.
  • È possibile attivare i punti di interruzione dopo essere stati colpiti un certo numero di volte. (selezionare Numero riscontri dal menu popup). Questa è una scelta divertente con cui non ci si limita a spezzare un certo numero di colpi, ma si hanno anche opzioni per alcuni altri scenari. Lo lascerò a te per esplorare le possibilità.
  • È possibile impostare filtri sul processo di ID, ID di thread, e il nome della macchina (selezionare Filter dal menu a comparsa)
3

su Visual Studio 6.0

Alt + F9! !!

+1

-1) Questo non funziona in VS 2012 2) Questa domanda ha già un sacco di altre (migliori) risposte e 3) chi si occupa di VS 6.0 (pubblicato nel 1998)? 4) Anche se a qualcuno interessa il VS 6, la domanda viene codificata con .Net che non ha supporto fino alla prossima versione di VS (Visual Studio .Net) –

+3

Bene, le altre risposte non funzionano su VS 6.0. Così ho pubblicato una soluzione. – Vorac

36

Quando si utilizza edizione Express è possibile provare questo:

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

if fa in modo che nel rilascio di accumulo breakepoint non sarà presente.

+1

Anche in edizione professionale –

+3

Questo ha un grande vantaggio in termini di prestazioni/risparmio di tempo. Stavo iterando attraverso ogni potenziale int 'id' in un mio programma (solo circa 3,5 milioni), che richiede solo un paio di secondi. Stavo cercando di utilizzare il punto di interruzione condizionale, ma dal momento che non si trovava in un ramo condizionale, ha rallentato la velocità di esecuzione fino al punto in cui dopo pochi minuti avrei terminato la sessione di debug. L'utilizzo del breakpoint compilato lo ha reso istantaneo. –

14

Solo un altro modo di farlo, (o se si utilizza espresso) aggiungere la condizione in codice:

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

Scrivendo la reale condizione può essere la parte più difficile, quindi tendo a

  1. impostare un punto di interruzione regolare
  2. Eseguire il codice fino a quando il punto di interruzione viene colpito per la prima volta
  3. Utilizzare la finestra immediata (Debug> Windows> Immediata) su verificare l'espressione.
  4. Fare clic con il tasto destro del mouse sul punto di interruzione, fare clic su Condizione e incollare nell'espressione .

I vantaggi di utilizzare la finestra immediata

  • Ha intellisense
  • Si può essere sicuri che i variabili nell'espressione sono portata quando l'espressione viene valutata
  • Puoi essere sicuro che la tua espressione restituisce vero o falso

Questo esempio rompe quando il codice si riferisce a una tabella con il nome "Impostazioni"

table.GetTableName().Contains("Setting") 
Problemi correlati