Todo programador precisa debugar um código, ora o seu, ora um já existente. Pode ser que esteja realizando uma manutenção ou poque está criando uma nova feature. É um processo inerente ao desenvolvimento.

Debug é o processo que envolve identificar, isolar e corrigir os erros ou anormalidades de um software.

Esta pode ser uma tarefa árdua, pois dependendo de onde está o bug, não será fácil reproduzir ou achar. Como por exemplo a dificuldade em achar erros de processos em paralelos ou bugs que só acontecem no ambiente em produção.

Para facilitar a vida do desenvolvedor o Visual Studio possui diversas ferramentas que auxiliam este processo.

E neste artigo iremos abordar quais são essas ferramentas e para que servem.

DataTip

O DataTip é de longe o mais utilizado, pela natureza da sua facilidade. Basta parar em um breakpoint, passar o mouse sobre alguma variável e ele estará lá para ajudar o programador.

DataTip

É possível dar um pin em um determinado valor. Extremamente útil durante o debug em loops.

pin

QuickWatch dialog

O DataTip certas vezes pode deixar a desejar, como em casos que a variável inspecionada possuir muitas propriedades. O mouse pode escorregar e involuntariamente fechar a janela. Para esses cenários o QuickWatch é perfeito. Uma janela é aberta com todos os detalhes das variaveis, facilitando a navegação, permitindo a alteração de variáveis e a partir da versão 2015 do Visual Studio também faz parse de expressões lambda.

QuickWatch
QuickWatch-aberto

O atalho para abrir é clicando no Botão direito do mouse em cima da variável desejada e selecionar QuickWatch, ou então selecionando a variável e pressionando Shift+F9

Parallel Watch Window

O objetivo é auxiliar o debug de processos que estão em paralelo. Ela identifica e monitora uma variável através de várias Threads. Além disso é possivel monitorar um valor especifico entre as threads através do suporte a Watch.

Esta é uma ferramenta indispensável ao trabalhar com códigos em paralelo.

ParallelWatch-Window

Cada linha representa uma thread. A primeira coluna é o identificador da Thread e a segunda representa a variável que deseja monitorar.

As demais colunas servem para adicionar Watchs, que verificam se a propriedade da variável possui o valor desejado.

Locals Window

A Locals Window exibe automaticamente uma lista de variáveis e seus valores, que estejam dentro do escopo do método. Ao parar em um breakpoint a janela Locals vai exibir o nome da variável juntamente com seu valor.

Locals-Window

Quando o objetivo é entender de maneira geral o que se passa dentro de um método essa ferramenta pode ser utilizada. Ao alterar o valor de alguma variável o Locals exibe em vermelho o novo valor. Esta ferramenta é util para debugar linha-a-linha e ter um panorama geral de quais variáveis estão sendo modificadas.

Para localizar esta janela vá em DEBUG > Windows

Watch Window

Pode ser considerado um complemento da Locals Window, pois enquanto a Locals exibe todas as variáveis do escopo atual, a Watch filtra e exibe apenas as variáveis selecionadas.

WatchWindow

O Watch possui comportamento similar ao Locals, da mesma forma que a outra, ela exibirá em vermelho quando um valor for alterado.

Para localizar esta janela vá em DEBUG > Windows

Autos

Está janela também é similar ao Locals, a diferença é que esta ferramenta exibe apenas as variáveis que estão dentro do atual bloco de código, por exemplo, as variáveis que estão dentro de um loop.

Autos

Esta janela também destaca em vermelho quando um valor é alterado.

Para localizar esta janela vá em DEBUG > Windows

Immediate Window

Enquanto o código está parado em um breakpoint, é possível alterar o valor de uma variável, executar expressões e sem a necessidade de parar a execução para recompilar.

ImmediateWindow

Eae gostou? Deixe seu comentário!

Links uteis