2010-06-30 9 views
15

In Visual Studio 2008 durante il debug di un sito Web ASP.Net ho impostato un punto di interruzione nella pagina codebehind. Rinnovo la pagina o invio per chiamare il metodo, il punto di interruzione viene colpito. Quindi cancello il breakpoint e continuo l'esecuzione. Apporto una modifica alla pagina codebehind e la salvo. Invio o aggiorno di nuovo e il punto di interruzione cancellato è tornato! È colpito di nuovo, e lo cancello di nuovo. Ho provato a cancellare, disabilitare, niente funziona continua a tornare se cambio la pagina. È estremamente fastidioso e improduttivo. L'unico modo in cui ho trovato che il punto di interruzione scompare definitivamente consiste nell'utilizzare il menu Debug Elimina tutti i punti di interruzione, che ovviamente non è l'ideale. Sono stato in grado di riprodurre questo anche su macchine di altri sviluppatori. Che cosa sta succedendo qui? È questo in base alla progettazione? È un bug in VS? Come faccio a mantenere questi punti di rottura di zombi da resuscitare?Visual Studio 2008 ASP.Net Il debug dei punti di interruzione di zombie viene ripristinato dopo essere stato eliminato

+5

"Punti di interruzione" ... bello. – AGoodDisplayName

+1

possibile duplicato di [Domanda su come rimuovere un punto di interruzione di Visual Studio] (http://stackoverflow.com/questions/2569631/question-on-how-to-remove-a-visual-studio-breakpoint) – womp

risposta

2

È perché i punti di interruzione figlio persistono: MSDN article.

Le opzioni sono:
- Interrompere la sessione di debug, quindi rimuovere il punto di interruzione facendo clic sul suo glifo rosso.
- Trova il punto di interruzione nell'elenco Finestra punti di interruzione ed eliminalo da lì.
- Utilizzare una macro per pulire i punti di interruzione figlio tra le sessioni di debug, quindi rimuovere facendo clic sul glifo. [1] (Quirky, ma si sente bene quando funziona.)
- Utilizzare una macro per eliminare un punto di interruzione sulla linea attualmente selezionata. [2]

1

Ho avuto anche questo problema. Se si interrompe il debug (clic stop) prima di eliminare il punto di interruzione, dovrebbe andare via in modo permanente.

3

Probabilmente è un bug. Utilizzare Elimina tutti i punti di interruzione (MAIUSC + F9) o provare a eliminare il punto di interruzione in modalità interrotta (non in Esecuzione).

+2

Non è un bug, è probabile un breakpoint multi-bound. Vedi http://connect.microsoft.com/VisualStudio/feedback/details/391642/permanently-remove-a-breakpoint-in-visual-studio-during-debugging – womp

+0

@womp: bello, non lo sapevo, grazie –

1

Penso che questo sia di progettazione.

Rimuovere un punto di interruzione in modalità di debug ed è temporaneo. Rimuovere un punto di interruzione in modalità progettazione e il suo permanente.

2

È come @ descrive il collegamento di sgiffinusa: è la differenza tra un punto di interruzione in sospeso e uno associato. Prima che il debugger sia collegato, si tratta di una interruzione in sospeso, una volta che il debugger è collegato, potrebbe avere più di un pezzo di codice generato che lo accede e il debugger associa un punto di interruzione a ciascun percorso in quel codice. Non capisco ... ma è quello che sembra accadere. :)

Una soluzione che sembra funzionare per me è, invece di attivare il punto di interruzione con il mouse facendo clic sul margine, utilizzare il tasto F9 (o qualsiasi altra cosa a cui è mappato, per disattivare il punto di interruzione , quindi premi nuovamente F9 per riattivarlo, quindi F9 ancora una volta per liberarti della cosa dang per sempre.

Non ho idea del perché funzioni, ma lo fa in questo ufficio.

Problemi correlati