Depurar seu aplicativo gravando execução de código com o IntelliTrace

Perca menos tempo depurando seu aplicativo no Visual Studio Ultimate ao usar o IntelliTrace para registrar e rastrear o histórico de execução do seu código. Você poderá localizar bugs mais facilmente sem precisar definir muitos pontos de interrupção porque o IntelliTrace permite:

  • Registrar eventos específicos que ocorreram em seu aplicativo.

    Você poderá examinar o código relacionado, dados que são mostrados na janela Locais durante eventos de depurador e informações de chamada de função, se você optar pela coleta.

  • Reduzir o número de reinícios do seu aplicativo para recriar bugs ou eventos.

  • Depurar erros difíceis de reproduzir ou que ocorrem na implantação.

Veja como os eventos de registro podem ajudar você a localizar um bug em seu código:

Eventos do IntelliTrace somente - fluxo de alto nível

O que você deseja fazer?

Depurar meu aplicativo com o IntelliTrace no Visual Studio:

  • Mostrar-me eventos passados.

  • Mostrar-me informações de chamadas com eventos passados.

  • Salvar minha sessão do IntelliTrace.

  • Controlar os dados que são coletados pelo IntelliTrace.

Coletar dados do IntelliTrace durante uma sessão de teste no Test Manager

Coletar dados do IntelliTrace de aplicativos em implantação

Iniciar a depuração a partir de um arquivo de log do IntelliTrace (arquivo .iTrace).

Perguntas frequentes

  • Que aplicativos posso depurar com o IntelliTrace?

  • Por que depurar com o IntelliTrace?

  • Que dados o IntelliTrace coleta?

  • O IntelliTrace faz com que meu aplicativo fique mais lento?

Que aplicativos posso depurar com o IntelliTrace?

Com suporte

Suporte limitado

  • Aplicativos F# em uma base de avaliação

  • Aplicativos da Windows Store suportados somente para eventos

Sem suporte

  • C++, outras linguagens e scripts

  • Aplicativos Windows Services, Silverlight, Xbox ou Windows Mobile

Dica

Para depurar um processo que já está sendo executado, não é possível usar o IntelliTrace.Você deverá iniciar o IntelliTrace quando o processo for iniciado.

Por que depurar com o IntelliTrace?

A depuração tradicional ou dinâmica mostra somente o estado atual do seu aplicativo com dados limitados sobre eventos passados. Você terá que interpretar esses eventos com base no estado atual do aplicativo ou então recriá-los ao executar novamente o aplicativo.

O IntelliTrace expande esta experiência tradicional de depuração ao registrar eventos específicos e os dados nesses pontos de tempo. Isso permite que você veja o que ocorreu em seu aplicativo sem reiniciá-lo, especialmente se você passar pelo ponto em que o bug ocorre. O IntelliTrace é ativado por padrão durante a depuração tradicional e coleta dados automaticamente e de forma invisível. Isso permite que você alterne facilmente entre a depuração tradicional e a depuração do IntelliTrace para consultar as informações registradas. Consulte Gravar a execução de código com o IntelliTrace durante a depuração e quais dados são coletados pelo IntelliTrace?

O IntelliTrace também pode ajudá-lo a depurar erros que são difíceis de reproduzir ou que ocorrem na implantação. Você pode coletar dados do IntelliTrace e salvá-los em um arquivo de log do IntelliTrace (arquivo .iTrace). Um arquivo .iTrace contém detalhes sobre exceções, eventos de desempenho, solicitações da Web, dados de teste, threads, módulos e outras informações do sistema. Você pode abrir esse arquivo no Visual Studio Ultimate, selecionar um item e iniciar a depuração com o IntelliTrace. Isso permite navegar para qualquer evento no arquivo e ver detalhes específicos sobre seu aplicativo neste ponto no tempo.

Você pode salvar dados do IntelliTrace a partir destas fontes:

Estes são alguns exemplos de como o IntelliTrace pode ajudar na depuração:

  • O aplicativo corrompeu um arquivo de dados, mas você não sabe onde esse evento ocorreu.

    Sem o IntelliTrace, você precisa examinar o código para localizar todos os possíveis acessos de arquivo, adicionar pontos de interrupção nesses acessos e executar novamente seu aplicativo para descobrir onde ocorreu o problema. Com o IntelliTrace, você pode ver todos os eventos de acesso a arquivo coletados e detalhes específicos sobre seu aplicativo quando cada evento ocorreu.

  • Uma exceção ocorre.

    Sem o IntelliTrace, você receberá uma mensagem sobre uma exceção, mas não terá muitas informações sobre os eventos que levaram à exceção. Você pode examinar a pilha de chamadas para ver a cadeia de chamadas que conduziu à exceção, mas não pode ver a sequência dos eventos que aconteceram durante essas chamadas. Com o IntelliTrace, você pode examinar os eventos que ocorreram antes da exceção.

  • Seu aplicativo falha em um computador de teste, mas funciona corretamente em um computador de desenvolvimento.

    Você pode coletar dados do IntelliTrace do Microsoft Test Manager, salvar os dados em um arquivo .iTrace e anexar esse arquivo a um item de trabalho do Team Foundation Server para investigação posterior. Consulte Coletar mais dados de diagnóstico em testes manuais e Depurar seu aplicativo usando dados salvos do IntelliTrace.

  • Um bug ou uma falha ocorre em um aplicativo em execução na implantação.

    Para aplicativos baseados no Microsoft Azure, você pode configurar a coleta de dados do IntelliTrace antes de publicar o aplicativo. Enquanto o aplicativo é executado, o IntelliTrace salva dados em um arquivo .iTrace. Consulte Debugging a Published Cloud Service with IntelliTrace and Visual Studio (Depuração de serviços de nuvem publicados com o IntelliTrace e o Visual Studio).

    Para aplicativos Web em ASP.NET hospedados no IIS 7.0, 7.5 e 8.0 e aplicativos SharePoint 2010 ou SharePoint 2013, use o Agente de Monitoramento da Microsoft sozinho ou com o System Center 2012 para salvar dados do IntelliTrace em um arquivo .iTrace.

    Isso é útil quando você deseja diagnosticar problemas com os aplicativos durante a implantação. Consulte Coletar dados de diagnóstico em produção usando o coletor autônomo do IntelliTrace.

Que dados o IntelliTrace coleta?

Coletando informações de eventos

Por padrão, o IntelliTrace registra somente eventos do IntelliTrace. Esses são eventos do depurador, exceções, eventos do .NET Framework e outros eventos do sistema que podem ajudar você na depuração. Você pode escolher os tipos de eventos do IntelliTrace que deseja coletar, exceto para eventos do depurador e exceções, os quais são coletados sempre. Consulte Configurar o IntelliTrace para coletar informações de depuração.

  • Eventos do depurador

    O IntelliTrace sempre registra eventos que acontecem no depurador do Visual Studio. Por exemplo, iniciar seu aplicativo é um evento do depurador. Outros eventos do depurador são eventos de parada, que fazem com que seu aplicativo interrompa a execução. Por exemplo, seu programa atinge um ponto de interrupção, atinge um ponto de controle ou executa um comando Etapa.

    Para ajudar no desempenho, o IntelliTrace não registra todos os valores possíveis para um evento do depurador. Em vez de isso, ele registra estes valores:

    • Valores na janela Locais. Mantenha a janela Locais aberta para consultar esses valores.

    • Valores na janela Autos somente se a janela Autos estiver aberta

    • Valores em DataTips que surgem quando você move o ponteiro do mouse sobre uma variável na janela de origem para ver seu valor. O IntelliTrace não coleta valores em DataTips fixados.

  • Exceções

    O IntelliTrace registra o tipo e a mensagem de exceção para estes tipos de exceções:

    • Exceções tratadas onde a exceção é gerada e capturada

    • Exceções sem tratamento

  • Eventos do .NET Framework

    Por padrão, o IntelliTrace registra os eventos mais comuns do .NET Framework. Por exemplo:

    • Para um evento de acesso a arquivo, o IntelliTrace coleta o nome de arquivo.

    • Para um evento de marcar caixa de seleção, o IntelliTrace coleta o estado e o texto da caixa de seleção.

  • Eventos de aplicativos SharePoint 2010 e SharePoint 2013

    Você pode registrar eventos de perfil de usuário e um subconjunto de eventos do ULS (Sistema de Registro Unificado) para os aplicativos SharePoint 2010 e 2013 que são executados fora do Visual Studio. Você pode salvar esses eventos em um arquivo de .iTrace. Requer o Visual Studio Ultimate 2013 ou o Microsoft Monitoring Agent executado no modo Rastrear.

    Ao abrir o arquivo .iTrace, insira uma identificação de correlação do SharePoint para localizar a solicitação da Web correspondente, exibir os eventos registrados e iniciar a depuração de um evento específico. Se o arquivo contiver exceções sem tratamento, você poderá escolher uma identificação de correlação para iniciar a depuração de uma exceção.

    Consulte:

Coletando informações de chamadas de funções

Você pode configurar o IntelliTrace para coletar informações de chamada para funções. Essas informações permitem que você veja um histórico da pilha de chamadas e permitem que você percorra para frente e para trás as chamadas no código. Para cada chamada de função, o IntelliTrace registra estes dados:

  • Nome da função

  • Valores de tipos de dados primitivos passados como parâmetros em pontos de entrada de função e retornados em pontos de saída de função

  • Valores de propriedades automáticas quando elas são lidas ou alteradas

  • Ponteiros para objetos filhos de primeiro nível, mas não seus valores diferentes caso eles fossem nulos ou não

Dica

O IntelliTrace coleta somente os 256 primeiros objetos em matrizes e os 256 primeiros caracteres para cadeias de caracteres.

Consulte Configurar o IntelliTrace para coletar informações de depuração.

Coletando informações de módulo

Para controlar a quantidade de informações de chamadas que o IntelliTrace coleta, especifique somente os módulos que interessem a você. Isso pode ajudar a melhorar o desempenho do seu aplicativo durante a coleta. Consulte Configurar o IntelliTrace para coletar informações de depuração.

O IntelliTrace faz com que meu aplicativo fique mais lento?

Por padrão, o IntelliTrace coleta dados somente para eventos do IntelliTrace selecionados. Isso pode ou não tornar o aplicativo mais lento, dependendo da estrutura e da organização do seu código. Por exemplo, se o IntelliTrace registra um evento com frequência, isso poderá tornar o aplicativo mais lento, mas também poderá servir como aviso para você considerar refatorar seu aplicativo.

A coleta de informações de chamada pode deixar seu aplicativo significativamente mais lento. Ela também pode aumentar o tamanho de qualquer arquivo de log do IntelliTrace (arquivos .iTrace) que você possa estar salvando em disco. Para minimizar esses efeitos, colete informações de chamada somente para os módulos desejados. Para alterar o tamanho máximo de seus arquivos de .iTrace, vá para Ferramentas, Opções, IntelliTrace, Avançado. Consulte Configurar o IntelliTrace para coletar informações de depuração.

Onde posso obter mais informações?

Gravar a execução de código com o IntelliTrace durante a depuração

Configurar o IntelliTrace para coletar informações de depuração

Incluindo dados de rastreamento de diagnóstico que sejam difíceis de reproduzir

Configurar sua versão para diagnosticar problemas após a implantação

Depurar seu aplicativo usando dados salvos do IntelliTrace

Blogs

Visual Studio ALM + Team Foundation Server

Fóruns

Diagnósticos do Visual Studio

Orientação

Teste para entrega contínua com Visual Studio 2012 – Capítulo 6: A Testing Toolbox (Uma caixa de ferramentas de teste)