O Visual Studio se recusa a esquecer pontos de interrupção?

216

O Visual Studio lembra pontos de interrupção de sessões de depuração anteriores, o que é incrível.

No entanto, quando estou depurando e limpo um desses pontos de interrupção "antigos" ao clicar nele, ele é excluído apenas temporariamente. O que quero dizer é que na próxima vez em que depurar, o ponto de interrupção que pensei ter removido está de volta.

Isso é super irritante - existe uma configuração para fazê-lo não fazer isso?

dan
fonte
24
Se você removê-los depois que o depurador parar, eles permanecerão desaparecidos para sempre.
dlev 12/05
2
relatório de erro fechado "como por design" em 2009; explicação do MS - connect.microsoft.com/VisualStudio/feedback/details/476744/…
zomf
1
Se você possui a nova versão beta do VS 2015, pode enviar um olhar severo. Talvez eles escutem se todos fizermos isso.
Jsuddsjr
esse URL de conexão não funciona mais - mas eu lembro que era algo sobre threads - mas quão difícil é adicionar uma opção de clique com o botão direito do mouse 'remover permanentemente o ponto de interrupção', independentemente do motivo?
Simon_Weaver
1
Por que eles não fornecem apenas a opção "Excluir ponto de interrupção pendente " no menu de contexto do ponto de interrupção? Não é ciência de foguetes.
John John

Respostas:

131

vá para o Debugmenu entãoDelete All Breakpoints Ctrl+Shift+F9

geléias
fonte
39
Tente isso, selecione o item da barra de ferramentas Pontos de interrupção na barra de ferramentas Debug. Isso abre a janela Pontos de interrupção. Nesta janela, você pode ver todos os pontos de interrupção no aplicativo. Aqui, você seleciona e limpa o ponto de interrupção clicando no botão Excluir na barra de ferramentas no painel Pontos de interrupção.
atola
maravilhoso - a tecla de atalho funciona na edição expressa (que não possui itens no menu).
fun_vit
20
não é bom quando eu quiser remover apenas um ponto de interrupção não todos eles
andrew.fox
1
Isso não resolve o problema o tempo todo. Eu usei, e o ponto de interrupção ainda volta .. Está em um lugar irritante, onde não consigo superar isso até terminar de pressionar continuar mais de 50 vezes.
Dinerdo
1
@Dinerdo Em vez de excluí-lo, tente desabilitá-lo ou adicionar uma condição que nunca é verdadeira.
precisa saber é o seguinte
15

O problema é que os pontos de interrupção filhos de seus pontos de interrupção persistem. Pontos de interrupção filhos são criados (em determinadas situações) ao definir pontos de interrupção durante uma sessão de depuração.

Uma maneira infalível de excluir um ponto de interrupção (e filhos) é procurá-lo manualmente na janela do ponto de interrupção e excluí-lo a partir daí. (Selecione o nó superior da entrada, clique em Delete).

Se você estiver executando uma versão (antiga) do Visual Studio que suporta macros VBScript, poderá executar a macro postada aqui (entre as sessões de depuração), para remover pontos de interrupção filho. Isso tornará a remoção de pontos de interrupção clicando no glifo um pouco mais eficaz e previsível, mas continua sendo problemática e incômoda.

Protetor um
fonte
12

Eu estava lutando para encontrar a 'Janela BreakPoints'. Então, aqui está a maneira rápida de abri-la- ctrl+ alt+B

insira a descrição da imagem aqui


Ou você pode ir manualmente para 'Debug-> Windows-> Breakpoints' para abri-lo.

insira a descrição da imagem aqui


Ou você pode pressionar ctrl+ shift+ F9para excluir todos os pontos de interrupção de uma só vez!

JerryGoyal
fonte
9

Existem algumas respostas aqui, mas, na minha opinião, as ações propostas são distrativas para serem usadas durante a depuração (não quero perder meu foco).

Meu fluxo com pontos de interrupção persistentes durante os pontos de interrupção é o seguinte:

Durante a depuração, desabilite o ponto de interrupção em vez de removê-lo.

Formas possíveis de desativar um ponto de interrupção:

  • passe o mouse com o cursor e clique no ícone de dois ciclos;
  • ou use o menu de contexto nele;
  • ou atalho de teclado CTRL + F9 (não Shift + CTRL + F9, pois limpa todos os pontos de interrupção).

Mais tarde, durante o desenvolvimento, removo um ponto de interrupção desabilitado quando vejo um.

PS. Também é uma boa prática remover todos os pontos de interrupção de vez em quando.

andrew.fox
fonte
1
Se a desativação funcionar, não vejo por que "pontos de interrupção vinculados" vs. "pontos de interrupção pendentes", conforme descrito no artigo acima (re: fechado pelo design), é um problema insuperável.
ItsAllABadJoke
3
  • Inicie sua sessão de depuração com um número mínimo de arquivos abertos, conforme você depurar os pontos de interrupção indesejados aparecerão e os arquivos contidos serão abertos em novas guias.
  • Finalize a sessão de depuração e abra a janela de pontos de interrupção (na barra de ferramentas de depuração, por algum motivo, ela não está no menu Exibir).
  • Para cada arquivo, digite o nome do arquivo na área de pesquisa da janela de pontos de interrupção e pressione enter para filtrar os pontos de interrupção por arquivo.
  • Você pode clicar em cada ponto de interrupção na janela para ver onde eles estão localizados no código e excluí-los, se desejar. Um pouco entediante, mas que a melhor maneira que encontrei para me livrar desses pontos de interrupção indesejados de fantasmas ... Gerenciamento de marcadores e pontos de interrupção .. Essas funções provavelmente foram aprimoradas pela última vez em algum momento do século passado ...
pasx
fonte
1

A maioria dos pontos de interrupção pode ser removida durante a sessão de depuração, mas alguns estão bloqueados (provavelmente um bug no Visual Studio).

Se você deseja remover apenas o ponto de interrupção que está travado, use as janelas "Pontos de interrupção" encontrados no menu de depuração. Lá, você provavelmente verá que seu ponto de interrupção existe várias vezes para a mesma linha. Basta clicar com o botão direito e excluí-lo.

Robert
fonte
0

Uma resposta rápida e alternativa a essa pergunta antiga que acabou de chegar ao Visual Studio 2017.

Se possível, basta recortar e colar o código com o ponto de interrupção. O ponto de interrupção desaparece com o corte.

JH
fonte
0

Vá para depuração> janelas> pontos de interrupção e encontre pontos de interrupção e remova-os do painel.

como foi respondido aqui

Hamed Mahdizadeh
fonte
0

Considero isso uma falha de design, é muito frustrante e algo com o qual tivemos que conviver por um longo tempo. Nós o atingimos com tanta frequência que apenas se torna a norma. As soluções dadas até agora são realmente alternativas.

Uma solução melhor seria se reunir e votar em uma alteração no Visual Studio User Voice. Parece que isso foi registrado algumas vezes, então devemos escolher uma para votar.

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

Ryan B
fonte
0

Se você estiver depurando um aplicativo Web e definir um ponto de interrupção no chrome, o código VS honrará esse ponto de interrupção e não permitirá que você o remova. Em outras palavras, os pontos de interrupção efetivos são a soma dos pontos de interrupção definidos no VS Code e no seu chrome. E sim, às vezes é fácil esquecer que você define um ponto de interrupção no chrome e se perde na tentativa de descobrir como removê-lo do VS Code.

Ya.
fonte