Resolvendo bugs usando o IntelliTrace e Code Map no Visual Studio
5 de setembro de 2013O dia a dia de qualquer desenvolvedor sempre vai se alternando entre uma nova linha de código e um novo bug encontrado a ser resolvido tornando-se uma rotina diária até estabilizar uma aplicação. Ao logo do uso do software em produção aparecem novos bugs que são remitidos as equipes de manutenção para correção conforme cada cenário encontrado e gravidade dos mesmos para o negócio.
Ao passar por um dos projetos eu recebi o pedido para corrigir um problema de autenticação que estava correndo na integração com o facebook e o cadastro de novos usuários na aplicação. Na prática eram três bugs juntos dentro do contexto “Cadastro de novos usuários” e de nível crítico uma vez que estavam impedindo a entrada de novos usuários em meio a uma nova campanha de divulgação.
Para você melhor entender o cenário e observar se já passou por isso eu não conhecia o código da aplicação e caiu em minha mão a necessidade da correção. Se você acreditava que isso não acontecia no Brasil então lhe garanto que acontece e muito no dia a dia dos desenvolvedores que converso.
Com o Bug definido o próximo passo era depurar a aplicação (“Que eu não conhecia o fluxo do código”) para simular e analisar os passos até a geração do problema. Portanto o próximo passo foi rodar a aplicação e entrar no Controller do ASP.NET que estava tratando aquela requisição para iniciar o monitoramento. Foi nesse momento que eu acionei a ferramenta de IntelliTrace dentro do Visual Studio para rastrear passo a passo a navegação pelo código e o Code Map é uma espécie de debug em modo visual que constroe um mapa de navegação do código permitindo anotações e revisão direto aos pontos de passagem.
Para carregar a janela de Code Map clique em qualquer método com o botão direito do mouse e escolha a opção “Show on Code Map”. Feito isso basta prosseguir com o processo normal de depuração que ao lado será criado o diagrama. Agora basta um clique no diagrama e você pode voltar no bloco de código investigando todo os pontos de passagem do código.
O próximo passo foi ligar o IntelliTrace indo no Visual Studio em Debug > Windows > IntelliTrace abrindo a janela de logs rastreando todo o processamento da minha aplicação. Para você melhor entender eu fiquei na dúvida sobre o erro que estava acontecendo na inclusão do banco de dados. Para encontrar o erro bastou ligar o IntelliTrace que ele fez a captura automaticamente e depois para melhor detalhar o comando busquei a informação da linha que estava executando o comando.
Para gerar esse cenário durante esse artigo eu parei o banco de dados de proposito de forma a gerar um erro de acesso conforme você está observando no log do trace. A principal vantagem desse tipo de log é que você pode voltar no tempo e saber os parâmetros que estavam definidos nas variáveis antes de acontecer o bug. Esse mesmo log pode ser obtivo em um serviço em produção reduzindo drasticamente a quantidade de tempo necessário para resolver um problema uma vez que ao clicar no erro ele já te leva diretamente a linha de código que está com problema conforma apresentado na figura abaixo.
Conforme você observou o uso do Code Map e do Intellitrace são de externa importância para acelerar o diagnóstico de problemas nas aplicações permitindo a descoberta de um código desconhecido mapeando o fluxo de um processo de criando referência para análise de todo o caminho além da obtenção de todo o log de processamento da aplicação no Intellitrace.
Até a próxima. Gostou? Participe nos comentários e vá em curtir!!!!
[],
Ramon Durães
MVP, Visual Studio ALM
PSM, PSD, CSM