Analisar a abordagem do depurador de código para depurar um código
- 5 minutos
Todos os desenvolvedores precisam lidar com bugs de código. É apenas um modo de vida para os desenvolvedores. Às vezes, você pode detectar os bugs rapidamente. Afinal, você escreveu o código e, além disso, é bom encontrar e corrigir um problema rapidamente. Porém, é inevitável que haja momentos em que você fica procurando um bug que não é tão fácil de ser detectado.
Processo de depuração de código
Quando você percebe um bug no código, talvez seja uma tentação experimentar uma abordagem direta. Você sabe, aquela verificação rápida no qual você acha que o problema pode ser. Se isso valer a pena nos primeiros 30 segundos, ótimo, mas não fique preso nisso. Não continue indo para o próximo ponto nem para o seguinte. Não se permita perder tempo com as seguintes abordagens:
- Ler todo o código (apenas mais uma vez) na esperança de que desta vez o problema fique evidente para você.
- Percorrer algumas mensagens
Console.WriteLine("here")no código para acompanhar o progresso por meio do aplicativo. - Executar novamente o aplicativo com diferentes dados. Esperar que, se você observar o que funciona, entenderá o que não funciona.
Você pode ter experimentado vários graus de sucesso com esses métodos, mas não se engane. Há um jeito melhor.
A abordagem que geralmente é considerada a mais bem-sucedida é usar um depurador. Mas o que é exatamente um depurador?
Um depurador é uma ferramenta de software usada para observar e controlar o fluxo de execução do seu programa com uma abordagem analítica. Os depuradores ajudam você a isolar a causa de um bug e a resolvê-lo. Um depurador se conecta ao seu código usando uma destas duas abordagens:
- Hospedando o programa em um processo de execução próprio.
- Sendo executado como um processo separado anexado ao programa em execução.
Os depuradores têm variantes diferentes. Alguns funcionam diretamente na linha de comando, enquanto outros são fornecidos com uma interface gráfica do usuário. O Visual Studio Code integra as ferramentas do depurador na interface do usuário.
Por que usar um depurador
Se você não está executando o código por meio de um depurador, provavelmente, está adivinhando o que está acontecendo no aplicativo em runtime. O principal benefício de usar um depurador é que você pode observar seu programa em execução. Siga a execução do programa uma linha de código por vez. Essa abordagem minimiza a chance de você adivinhar errado.
O Visual Studio Code dá suporte a depuradores de código que permitem que você inspecione o código enquanto ele é executado. A imagem a seguir mostra um aplicativo em execução, com a execução pausada na linha de código realçada. O lado direito da tela mostra o código do programa, enquanto o lado esquerdo mostra o estado atual das variáveis.
Cada depurador tem o próprio conjunto de recursos. Os dois recursos mais importantes que vêm com quase todos os depuradores são:
Controle da execução do programa. É possível pausar o programa e executá-lo passo a passo, o que permite que você veja qual código é executado e como ele afeta o estado do programa.
Observação do estado do programa. Por exemplo, é possível observar o valor das variáveis e dos parâmetros de função a qualquer momento durante a execução do código.
Dominar o uso de um depurador de código é uma habilidade importante. Infelizmente, é uma habilidade que os desenvolvedores muitas vezes ignoram. O uso efetivo de um depurador ajuda você a ser mais eficiente na busca de bugs no código. Os depuradores também podem ajudar você a entender como um programa funciona.
Recapitulação
Estes são alguns pontos importantes desta unidade que você deve se lembrar:
- A depuração de código é uma habilidade crucial no processo de desenvolvimento de software que todos os desenvolvedores aprendem.
- A melhor abordagem para depurar seus aplicativos é usar um depurador, não reler o código cinco vezes ou adicionar instruções
console.WriteLine()em todo o código. - Os depuradores permitem pausar seu aplicativo, percorrer o código linha por linha e observar o estado das variáveis e dos parâmetros de função.