Compartilhar via


Depuração de viagem no tempo - Gravar rastreamento

Logotipo de depuração da viagem no tempo com um relógio.

Esta seção explica como gravar rastreamentos de depuração (TTD) de viagem no tempo. Há duas formas de gravar um rastreamento no WinDbg, Iniciar executável (avançado) e Anexar a um processo.

Iniciar executável (avançado)

Para iniciar um executável e gravar um rastreamento TTD, siga estes passos.

  1. No WinDbg, selecione Arquivo>Iniciar depuração>Lançar executável (avançado).

  2. Insira o caminho ao executável do modo de usuário que você quer gravar ou selecione Procurar para ir até o executável. Para informações sobre como trabalhar com o menu Iniciar executável no WinDbg, consulte WinDbg - Iniciar uma sessão de modo de usuário.

  3. Marque a caixa Gravar com depuração de viagem no tempo para gravar um rastreamento quando o executável é iniciado.

    Tire uma captura de tela do WinDbg com a caixa de seleção Iniciar gravação na tela Iniciar executável (avançado).

  4. Se marcar Configurar e gravar, você poderá configurar um local para o arquivo de rastreamento.

    Captura de tela da caixa de diálogo Configurar gravação com o botão Procurar e o caminho do arquivo.

  5. Para limitar a gravação a módulos específicos, marque a opção "Gravar subconjunto de execução" e digite os nomes dos módulos. Por exemplo, se você quiser gravar somente a execução de notepad.exe, digite "notepad.exe" na caixa de texto. Se você quiser gravar a execução de notepad.exe e kernelbase.dll, digite "notepad.exe.kernelbase.dll" na caixa de texto.

    Captura de tela da caixa de diálogo Configurar gravação com o subconjunto de gravação de execução marcado e a caixa de texto Lista de módulos.

  6. Selecione OK para iniciar o executável e começar a gravar.

  7. A caixa de diálogo Gravar aparece indicando que o rastreamento está sendo gravado.

    Captura de tela do pop-up de gravação TTD com os botões Parar e Depurar, e Cancelar.

  8. Consulte Como gravar para ver informações sobre a gravação.

Anexar a um processo

Para anexar a um processo e registrar um rastreamento TTD, siga estes passos.

  1. No WinDbg, selecione Arquivo>Iniciar depuração>Anexar ao processo.

  2. Selecione o processo de modo de usuário que você quer rastrear. Para obter informações sobre como trabalhar com o menu Anexar a um processo no WinDbg, consulte WinDbg - Iniciar uma sessão no modo de usuário.

    Captura de tela do WinDbg mostrando a caixa de seleção Iniciar gravação na tela Anexar ao processo.

  3. Marque a caixa Gravar processo com depuração de viagem no tempo para criar um rastreamento quando o executável é iniciado.

  4. Selecione Anexar para começar a gravação.

  5. A caixa de diálogo Gravar aparece indicando que o rastreamento está sendo gravado.

    Captura de tela do pop-up de gravação TTD com as opções Parar e Depurar, e Cancelar.

  6. Consulte Como gravar para ver informações sobre a gravação.

Como gravar

  1. O processo está sendo gravado, e é aqui que você precisa causar o problema que quer depurar. Você pode abrir um arquivo problemático ou selecionar um botão específico no aplicativo para fazer acontecer o evento de interesse.

  2. Enquanto a caixa de diálogo de gravação estiver sendo exibida, você pode:

    • Parar e depurar: marcar esta opção irá interromper a gravação, criar o arquivo de rastreamento e abrir o arquivo de rastreamento para você iniciar a depuração.
    • Cancelar: escolher esta opção irá interromper a gravação e criar o arquivo de rastreamento. Você pode abrir o arquivo de rastreamento depois.
  3. Quando a gravação for concluída, feche o aplicativo ou pressione Parar e depurar.

    Observação

    As opções Parar e depurar e Cancelar encerrarão o processo associado.

  4. Quando o aplicativo da gravação terminar, o arquivo de rastreamento será fechado e gravado no disco. O mesmo ocorre se o seu programa falhar.

  5. Quando um arquivo de rastreamento é aberto, o depurador indexa o arquivo de rastreamento automaticamente. A indexação torna pesquisas de valor de memória mais precisas e rápidas. Esse processo de indexação leva mais tempo para arquivos de rastreamento maiores.

    ...
    00007ffc`61f789d4 c3              ret
    0:000> !index
    Indexed 1/1 keyframes
    Successfully created the index in 96ms.
    

    Observação

    Um quadro-chave é um lugar em um rastreamento usado para indexação. Quadros-chave são gerados automaticamente. Rastreamentos maiores irão conter mais quadros-chave. Quando o rastreamento é indexado, o número de quadros-chave aparece.

  6. Neste ponto, você está no início do arquivo de rastreamento e pronto para viajar para frente e para trás no tempo.

    Dica

    O uso de pontos de interrupção é comum para pausar a execução de código em algum evento de interesse. Exclusivo do TTD, você pode definir um ponto de interrupção e viajar no tempo até que esse ponto de interrupção seja atingido depois da gravação do rastreamento. A capacidade de examinar o estado do processo depois de um problema, para determinar o melhor local para um ponto de interrupção, permite fluxos de trabalho de depuração adicionais. Para ver um exemplo de como usar um ponto de interrupção no passado, consulte Depuração de viagem no tempo - Passo a passo de aplicativo de exemplo.

Próximas etapas

Agora que já gravou um rastreamento TTD, você pode reproduzir o rastreamento ou trabalhar com o arquivo de rastreamento, por exemplo, compartilhando-o com um colega de trabalho. Para obter mais informações, consulte estes tópicos.

Depuração de viagem no tempo - Repetir rastreamento

Depuração de viagem no tempo - Trabalhando com arquivos de rastreamento

Depuração de viagem no tempo - Solução de problemas

Depuração de viagem no tempo - Passo a passo do aplicativo de exemplo

Confira também

Depuração de viagem no tempo – Visão geral