Como faço para: Criar um ponto de interrupção utilizando as condições? [C # Express]
-
06-07-2019 - |
Pergunta
Eu tenho visto isso no meu Visual C # 2008 RSS Feed para sempre agora:
http://lincolnfair.net/oldLincolnFair/mad.jpg
Eu tenho certeza que isso é uma única característica VS 2010, mas eu queria saber se há qualquer maneira de replicar isso em VS 2008?
Solução
Semelhante ao @Relster Eu tenho um trecho de código com o seguinte
#if DEBUG
if( node.Name == "Book" )
System.Diagnostics.Debugger.Break();
#endif
Onde node.Name == "Book"
muda de acordo com a condição Quero teste. o #if DEBUG
invólucro torna-se a verificações nunca fazê-lo para liberar código.
Esta é também muito mais rápido do que usando os pontos de interrupção condicionais no Visual Studio. Quando você usar o construída em visual studio bp condicional tem que entrar no aplicativo, pausar todos os tópicos, avaliar a expressão e determinar se é verdade cada vez que ele atinge o ponto de interrupção. Em um loop apertado este pode ser a diferença entre perto o desempenho da execução plena e funcionando em um rastreamento.
Outras dicas
Você pode fazê-lo em VS 2008 também. Eu tenho certeza que há muitas maneiras de fazer isso, mas é uma maneira de clique direito sobre o ponto vermelho na margem de um ponto de interrupção existente e selecione condition...
, em seguida, basta dar-lhe uma condição que resulta em um bool
e isso só vai quebrar se isso é verdade. A instrução condicional deve ter acesso a qualquer coisa que está no escopo na linha onde o ponto de interrupção está definido.
Há também outras opções que o menu de contexto que lhe permitem filtrar o que irá causar uma ruptura (por exemplo, apenas alguns tópicos), romper com base no número de vezes que o ponto de interrupção foi atingido, executar macros quando você atingir o ponto de interrupção, etc.
A outra maneira de fazer isso é fazer as suas próprias condições e usar uma chamada para:
System.Diagnostics.Debugger.Break();
Embora possa não ser tão sofisticado quanto o VS2010 forma de definir pontos de interrupção, você pode obter o mesmo efeito com sobrecarga de código mínimo. Basta lembrar de tomar essas coisas para fora quando você construir código de liberação.
Nota: Em VS2008 e VS2005, você pode definir um ponto de interrupção condicional, definindo um ponto de interrupção normal (F9 ou clique duas vezes na sarjeta), e em seguida, clique direito sobre esse ponto de interrupção para definir a "condição ...". A capacidade de definir pontos de interrupção condicional não está disponível no VS2008 Express Edition.