Visual Studio si rifiuta di dimenticare i punti di interruzione?


216

Visual Studio ricorda i punti di interruzione delle precedenti sessioni di debug, il che è fantastico.

Tuttavia, quando eseguo il debug e pulisco uno di questi "vecchi" punti di interruzione facendo clic su di esso, viene eliminato solo temporaneamente. Quello che voglio dire è la prossima volta che eseguo il debug, il punto di interruzione che pensavo di aver rimosso è tornato.

Questo è super fastidioso - c'è un'impostazione per farlo non farlo?


24
Se li rimuovi una volta che il debugger si è fermato, rimarranno per sempre.
dlev,

2
bug report chiuso "come da progetto" nel 2009; spiegazione da MS - connect.microsoft.com/VisualStudio/feedback/details/476744/…
zomf

1
Se hai la nuova beta di VS 2015, puoi inviare un cipiglio. Forse ascolteranno se lo facciamo tutti.
jsuddsjr,

che l'URL di connessione non funziona più - ma ricordo che era qualcosa sui thread - ma quanto è difficile aggiungere un'opzione di clic con il tasto destro del mouse "rimuovi permanentemente il punto di interruzione" indipendentemente dal motivo ???
Simon_Weaver,

1
Perché non forniscono solo un'opzione "Elimina punto di interruzione in sospeso " nel menu di scelta rapida del punto di interruzione? Non è scienza missilistica.
Giovanni,

Risposte:


131

vai al Debugmenu quindiDelete All Breakpoints Ctrl+Shift+F9


39
Prova a selezionare l'elemento della barra degli strumenti Punti di interruzione dalla barra degli strumenti Debug. Questo fa apparire la finestra Punti di interruzione. Da questa finestra, è possibile visualizzare tutti i punti di interruzione nell'applicazione. Qui, selezionare e cancellare il punto di interruzione facendo clic sul pulsante Elimina dalla barra degli strumenti nel riquadro Punti di interruzione.
marmellate

meraviglioso: il tasto di scelta rapida funziona in Express Edition (che non ha elementi nel menu).
fun_vit

20
non va bene quando voglio rimuovere solo UN punto di interruzione, non tutti
andrew.fox

1
Questo non risolve il problema in ogni momento. L'ho usato e il punto di interruzione ritorna ancora .. È in un posto fastidioso in cui non posso superarlo fino a quando non ho finito di premere continua più di 50 volte.
Dinerdo,

1
@Dinerdo Invece di eliminarlo, puoi provare a disabilitarlo o aggiungere una condizione che non è mai vera.
Tom Blodget,

15

Il problema è che i punti di interruzione figlio dei punti di interruzione persistono. I breakpoint figlio vengono creati (in determinate situazioni) quando si impostano i breakpoint durante una sessione di debug.

Un modo infallibile per eliminare un breakpoint (e i figli) è cercarlo manualmente nella finestra del breakpoint ed eliminarlo da lì. (Seleziona il nodo superiore della voce, premi Delete.)

Se si esegue una (vecchia) versione di Visual Studio che supporta le macro VBScript, è possibile eseguire la macro pubblicata qui (tra sessioni di debug), per rimuovere i punti di interruzione figlio. Ciò renderà la rimozione dei punti di interruzione facendo clic sul glifo in qualche modo più efficace e prevedibile, ma continua ad essere problematico e imbarazzante.


12

Stavo lottando per trovare la "Finestra BreakPoints". Ecco il modo rapido per aprirla- ctrl+ alt+B

inserisci qui la descrizione dell'immagine


Oppure puoi andare manualmente su 'Debug-> Windows-> Breakpoints' per aprirlo.

inserisci qui la descrizione dell'immagine


Oppure puoi premere ctrl+ shift+ F9per eliminare tutti i punti di interruzione contemporaneamente!


9

Ci sono alcune risposte qui, ma a mio avviso le azioni proposte sono distruttive da usare durante il debug (non voglio perdere la concentrazione).

Il mio flusso con punti di interruzione permanenti durante i punti di interruzione è il seguente:

Durante il debug, DISABILITARE il breakpoint invece di rimuoverlo.

Possibili modi per disabilitare un breakpoint:

  • passa con il cursore e fai clic sull'icona a due cicli;
  • o usa il menu contestuale su di esso;
  • o scorciatoia da tastiera CTRL + F9 (non Maiusc + CTRL + F9, poiché cancella tutti i punti di interruzione).

Successivamente, durante lo sviluppo, rimuovo un breakpoint disabilitato quando ne vedo uno.

PS. È anche buona norma rimuovere tutti i punti di interruzione di tanto in tanto.


1
Se disabilita funziona, non vedo perché "punti di interruzione associati" rispetto a "punti di interruzione in sospeso", come descritto nell'articolo precedente (ri: chiuso in base alla progettazione) è un problema insormontabile.
ItsAllABadJoke

3
  • Avvia la sessione di debug con un numero minimo di file aperti, poiché esegui il debug dei punti di interruzione indesiderati verranno visualizzati e i file contenenti verranno aperti in nuove schede.
  • Terminare la sessione di debug e aprire la finestra dei punti di interruzione (dalla barra degli strumenti di debug, per qualche motivo non si trova nel menu Visualizza).
  • Per ogni file, immettere il nome del file nell'area di ricerca della finestra dei punti di interruzione e premere Invio per filtrare i punti di interruzione per file.
  • È quindi possibile fare clic su ciascun punto di interruzione nella finestra per vedere dove si trovano nel codice ed eliminarli se lo si desidera. Un po 'noioso, ma il modo migliore che ho trovato per sbarazzarmi di quei breakpoint di fantasmi indesiderati ... Gestione dei segnalibri e dei breakpoint ... Queste funzioni sono state probabilmente migliorate l'ultima volta nel corso dell'ultimo secolo ...

1

La maggior parte dei punti di interruzione possono essere rimossi durante la sessione di debug, ma alcuni sono bloccati (probabilmente un bug in Visual Studio).

Si desidera rimuovere solo il punto di interruzione bloccato, quindi utilizzare le finestre "Punti di interruzione" presenti nel menu di debug. Lì probabilmente vedrai che il tuo punto di interruzione esiste più volte per la stessa riga. Basta fare clic con il tasto destro ed eliminarlo.


0

Una rapida alternativa alternativa a questa vecchia domanda che mi ha appena colpito con Visual Studio 2017.

Se possibile, basta tagliare e incollare il codice con il punto di interruzione su di esso. Il punto di interruzione scompare con il taglio.


0

Vai a debug> windows> punti di interruzione e trova i punti di interruzione e rimuovili dal riquadro.

come è stato risposto qui


0

Considero questo un difetto di progettazione, è molto frustrante e qualcosa con cui abbiamo dovuto convivere per molto tempo. Lo colpiamo così spesso che diventa la norma. Le soluzioni fornite finora sono davvero aggiranti.

Una soluzione migliore sarebbe quella di riunirsi e votare per un cambiamento sulla voce utente di Visual Studio. Sembra che questo sia stato registrato alcune volte, quindi dovremmo sceglierne uno per votare.

https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/31123351-delete-disable-break-point-while-debugging-should


0

Se esegui il debug di un'applicazione Web e imposti un punto di interruzione in Chrome, il codice VS rispetterà quel punto di interruzione e non ti consentirà di rimuoverlo. In altre parole, i punti di interruzione effettivi sono la somma dei punti di interruzione impostati in VS Code e in Chrome. E sì, a volte è facile dimenticare che si imposta un breakpoint in Chrome e ci si perde nel tentativo di capire come rimuoverlo da VS Code.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.