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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top