IntelliTrace para Visual Studio Enterprise (C#, Visual Basic, C++)

Você pode dedicar menos tempo à depuração do seu aplicativo usando o IntelliTrace para registrar e rastrear o histórico de execução do seu código. Você pode encontrar bugs facilmente porque o IntelliTrace permite:

  • Registrar eventos específicos

  • Examine o código relacionado, dados que são mostrados na janela Locais durante eventos de depurador e informações de chamada de função

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

Você pode usar o IntelliTrace no Visual Studio Enterprise (mas não nas edições Professional ou Community).

O que você deseja fazer?

Cenário Título
Depure meu aplicativo com o IntelliTrace:

– 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.
- Inspecionar o estado anterior do aplicativo usando o IntelliTrace
- Passo a passo: usando o IntelliTrace
- Recursos do IntelliTrace
- Depuração de histórico
Coletar dados do IntelliTrace de aplicativos implantados - Usando o coletor IntelliTrace autônomo
Iniciar a depuração a partir de um arquivo de log do IntelliTrace (arquivo .iTrace). - Usando os dados salvos do IntelliTrace

Que aplicativos posso depurar com o IntelliTrace?

Nível de suporte Tipos de aplicativos
Suporte completo – Aplicativos Visual Basic e Visual C# que usam .NET Framework 2.0 ou versões superiores.
É possível depurar a maioria dos aplicativos, inclusive ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Windows Workflow, SharePoint 2010, SharePoint 2013 e aplicativos de 64 bits.
Para depurar aplicativos do SharePoint com o IntelliTrace, consulte Instruções passo a passo: depurando um aplicativo do SharePoint usando o IntelliTrace.
Para depurar aplicativos Microsoft Azure com o IntelliTrace, consulte Depurando um serviço publicado na nuvem com o IntelliTrace e o Visual Studio.
Suporte limitado – Aplicativos C++ direcionados ao Windows dão suporte à exibição de instantâneos usando o retrocesso do IntelliTrace. Há suporte apenas para depurador e eventos de exceção.
- Aplicativos .NET Core e ASP.NET Core com suporte apenas para determinados eventos (eventos MVC Controller, ADO.NET e HTTPClient) na depuração local. Não há suporte para o Coletor Autônomo para aplicativos .NET Core ou ASP.NET Core.
– Aplicativos F# em uma base de avaliação
– Aplicativos UWP com suporte apenas para eventos
Sem suporte – Outras linguagens e scripts
– Aplicativos Windows Services, Silverlight, Xbox ou Windows Mobile

Observação

Se você quiser depurar um processo que já está em execução, colete somente eventos do IntelliTrace (sem informações de chamada). Você pode anexar a um processo de 32 bits ou 64 bits somente no computador local. Os eventos que ocorrem antes de você anexar ao processo não são coletados.

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. Confira Recursos do IntelliTrace 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 Enterprise, 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:

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

    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.

  • Um bug ou falha ocorre em um aplicativo implantado.

    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 Depurar um serviço de nuvem publicado 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. Confira Usar o coletor autônomo do IntelliTrace.

Que dados o IntelliTrace coleta?

Coletar informações de evento

Por padrão, o IntelliTrace só registra evento do IntelliTrace: eventos do depurador, exceções, eventos do .NET Framework e outros eventos do sistema que podem ser úteis 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. Confira Funcionalidades do IntelliTrace.

  • 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.

    Por padrão, 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.

      Quando o modo Eventos e Instantâneos do IntelliTrace estiver habilitado, o IntelliTrace tirará um instantâneo do processo do aplicativo em cada evento de Ponto de interrupção e Etapa do depurador. Isso registrará valores nas janelas Locais, Autos e Inspeção, independentemente das janelas estarem abertas ou não. Os valores em qualquer dica de dados fixada também serão coletados.

  • 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 CheckBox.CheckedChanged, 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 Visual Studio Enterprise 2015 ou versões posteriores, uma versão anterior do Visual Studio Ultimate ou o Microsoft Monitoring Agent em execução no modo Rastreamento.

    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:

Capturar instantâneos

Você pode configurar o IntelliTrace para capturar instantâneos em cada evento de etapa do depurador e do ponto de interrupção. O IntelliTrace registra o estado completo do aplicativo em cada instantâneo, o que permite exibir variáveis complexas e avaliar expressões.

Observação

O coletor autônomo do IntelliTrace não dá suporte à captura de instantâneos.

Confira Inspecionar o estado anterior do aplicativo usando o IntelliTrace.

Coletar 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

Observação

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

Confira Inspecionar seu aplicativo com a depuração histórica.

Coletar informações do 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 a seção Controlar quantas informações o IntelliTrace coleta nos recursos do IntelliTrace.

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 registrar um evento com frequência, isso poderá diminuir a velocidade do aplicativo. Isso também pode fazer com que você considere 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.

Blogs

Microsoft DevOps

Fóruns

Diagnóstico do Visual Studio