Diretrizes para depuração

As diretrizes a seguir fornecem várias técnicas para depuração de código.

Necessário

  • Aprenda a usar ferramentas de depuração.

    Você deve compreender e dominar as ferramentas de depuração.Para obter mais informações, consulte Depuração no Visual Studio.

  • Saiba onde seu símbolos são arquivados.

    Símbolos para cada produto devem ser arquivados em servidores de símbolo.Você somente precisará saber onde localizar esses servidores.Para obter mais informações, consulte "How to Use the Microsoft símbolo servidor" noBiblioteca MSDN.

  • Estude e resolva erros que desconectam processos.

    Para usuários, um aplicativo que pára de responder (trava) é tão ruim quanto um travamento.De qualquer forma, os usuários percam trabalho e devem começar de novo.No entanto, trava ter sido considerada sistema autônomo sendo muito mais difícil estudar e resolver.Não é válido para uma grande porcentagem de trava do processo.Use as mais recentes ferramentas e técnicas para solucionar esses problemas.Para obter mais informações, consulte "como solucionar falhas de programas com Dr..Watson"noBiblioteca MSDN.

  • Saber como depurar um minidump.

    A maioria dos clientes e dos testadores irão travar seu código sem a vantagem de um depurador anexado.Se você não pode reproduzir o problema facilmente então tudo que você terá que é um minidump.Aprender a depurar usando um minidump é essencial.Para obter mais informações, consulte "Arquivos de minidump" deBiblioteca MSDN.

  • Saber como recuperar uma pilha corrompida.

    Recuperar uma pilha corrompida é complexo, mas essa recuperação é essencial porque muita falhas reais tem pilhas que parecem incompreensíveis.Para obter mais informações, consulte "solução de problemas problemas comuns com aplicativos: Depuração no mundo real"naBiblioteca MSDN.

Evitar

  • Suponha que o teste localizará todos os erros.

    Teste nunca poderá encontrar todos os bugs.Não é possível.Código é muito complexo.Mesmo que o teste foi possível encontrar todos os bugs, você nunca teria time para corrigir todos eles.A direita coisa a fazer é projetar seu produto para que não sejam bugs no produto desde o início.Economize o trabalho de corrigi-los mais tarde.Você deve levar o responsável pela qualidade do seu código.A equipe de teste verifica apenas a qualidade do seu código.Não dependem de testadores para limpar a bagunça.

Recomendável

  • Saber como depurar aplicativos com vários segmentos.

    Introduzir segmentos em um programa pode fazê-lo falhar de novas maneiras.Tudo que você faz em um ambiente de segmentação única para ajudar a depurar aplicativos torna-se mais importante à medida que o número de segmentos aumenta.Nem sempre por exemplo, você pode capturar o erro no ponto em que ele ocorre.Geralmente o erro é interceptado depois, possivelmente em outro segmento.Nesses casos, você não pode nem mesmo voltar na pilha de chamadas para localizar o problema; o erro foi em outro segmento, com outro pilha.Ser pró-ativo tanto quanto possível ajudará no processo de depuração em geral.

  • Aprenda como fazer depuração remota.

    Depuração remota ocorre quando você deseja depurar um problema que está ocorrendo em outro computador enquanto continua a trabalhar em seu próprio computador.Desenvolvedores frequentemente fazem isso quando um segmento de código é executado corretamente em seu próprio computador mas falha em outro sistema.Eles talvez desejem depurá-lo no outro sistema remotamente, sem ter que ir sentar na frente do outro computador.Para obter mais informações, consulte Instalação de Depuração Remota.

  • Aprenda a depurar em servidores ativos.

    Procedimentos de depuração são diferentes quando você estiver tentando depurar código em um servidor ativo que os clientes estão acessando.Isso está ficando mais comum à medida que mais códigos são escritos para a Web.Para obter mais informações, consulte "solução de problemas problemas comuns com aplicativos: Depuração no mundo real"naBiblioteca MSDN.

  • Comente todas as correções de erros.

    Quando você corrigir um erro, inclua no código o número da versão, identificação do erro, e o alias.Se alguém examinar o código posteriormente e tiver uma pergunta sobre a correção, ele pode contatá-lo para obter informações.

  • Revise todas as correções de erros.

    Você deve revisar o código de todas as correções.Obtenha pelo menos uma outra pessoa para examinar seu código — uma revisão de colega.

  • Verifique correções de erros sutis antes do check-in.

    Evite corrigir o mesmo erro duas vezes.Use uma compilação para verificar se a correção está correta, especialmente para erros sutis.

  • Use um documento versão de teste para relatar todas as correções de erros.

    Coordene com a equipe de teste a documentação de todas suas correções de erros em um documento versão de teste (TRD) e envie-o para a equipe de teste via email.

  • Use servidor de símbolo para indexar e arquivar os símbolos do seu produto.

    Permitir que um servidor de símbolos indexe e arquive os símbolos do seu produto, você faz depuração de qualquer sistema, inclusive de sistemas cliente, rápido e fácil.

Não Recomendado

  • Corrigir erros de outras pessoas sem deixar que elas saibam.

    Pesquisar e tentar corrigir erros de outras pessoas é uma prática maravilhosa .Você conhece o código melhor, e você está servindo como backup para outras pessoas.A única coisa que você não deve fazer é check in a correção sem deixar que o proprietário desse código saiba sobre a correção.

  • Resolver um erro como " Não Reprodutível " sem tentar a mesma versão no mesmo ambiente.

    Você precisa reverter à versão do produto onde o erro foi encontrado.Não assuma que se ele não é quebrado na versão atual do produto, o erro deve ter sido corrigido.Isso pode não ser verdade.O código pode ter sido alterado de forma que agora ele apenas oculte o erro.Se você investigar um bug até que o veja quebrar, você pode realmente localizar a causa raiz do problema e corrigí-lo para que o erro não ocorra novamente em qualquer computador.

Consulte também

Conceitos

Diretrizes para escrever código seguro

Outros recursos

Terminologia de depuração

Despejos

Common linguagem tempo de execução Minidump ferramenta