Partilhar via


Depuração de viagem no tempo - Gravar um rastreamento

Logótipo de diagnóstico de viagens no tempo com um relógio.

Esta seção descreve como registrar rastreamentos de depuração de viagem no tempo (TTD). Há duas maneiras de gravar um traço 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 estas etapas.

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

  2. Digite o caminho para o executável no modo utilizador que pretende gravar ou selecione Pesquisar para navegar até ao executável. Para obter 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 Registro com Depuração de Viagem no Tempo para gravar um rastreamento quando o executável for lançado.

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

  4. Se você selecionar Configurar e Registrar , 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 exibido.

  5. Para limitar a gravação a módulos específicos, marque "Gravar subconjunto de execução" e digite os nomes dos módulos. Por exemplo, se você quiser registrar apenas 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 registro de execução marcado e a caixa de texto da lista de módulos.

  6. Selecione OK para iniciar o executável e iniciar a gravação.

  7. A caixa de diálogo de gravação é exibida indicando que o traço está a ser 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 obter informações sobre a gravação.

Anexar a um processo

Para anexar a um processo e registar um rastreio TTD, siga estas etapas.

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

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

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

  3. Marque a caixa Processo de registro com depuração de viagem no tempo para criar um rastreamento quando o executável for iniciado.

  4. Selecione Anexar para iniciar a gravação.

  5. A caixa de diálogo de gravação é exibida indicando que o traço está a ser 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 obter informações sobre a gravação.

Como gravar

  1. O processo está a ser gravado, por isso é aqui que precisas de causar o problema que desejas depurar. Você pode abrir um arquivo problemático ou selecionar um botão específico no aplicativo para fazer com que o evento de interesse ocorra.

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

    • Parar e depurar - Escolher isso irá parar a gravação, criar o arquivo de rastreamento e abrir o arquivo de rastreamento para que você possa começar a depuração.
    • Cancelar - Escolher isso irá parar a gravação e criar o arquivo de rastreamento. Você pode abrir o arquivo de rastreamento posteriormente.
  3. Quando a gravação estiver concluída, feche o aplicativo ou pressione Parar e depurar.

    Observação

    Parar e depurar e Cancelar encerrarão o processo associado.

  4. Quando o aplicativo que está sendo gravado termina, o arquivo de rastreamento será fechado e gravado no disco. Isto é o caso também se o seu programa falhar.

  5. Quando um arquivo de rastreamento é aberto, o depurador indexa automaticamente o arquivo de rastreamento. A indexação permite pesquisas de valores de memória mais precisas e rápidas. Esse processo de indexação levará 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 local em um traço usado para indexação. Os quadros-chave são gerados automaticamente. Rastreamentos maiores conterão mais quadros-chave. Quando o traço é indexado, o número de quadros-chave é mostrado.

  6. Neste ponto, você está no início do arquivo de rastreamento e está pronto para avançar e retroceder no tempo.

    Sugestão

    O uso de pontos de interrupção é uma abordagem comum para pausar a execução de código em algum evento de interesse. Exclusivo do TTD, pode definir um ponto de interrupção e retroceder no tempo até atingir esse ponto após o registo do rastreamento. A capacidade de examinar o estado do processo após a ocorrência de um problema, para determinar o melhor local para um ponto de interrupção, permite fluxos de trabalho de depuração adicionais. Para obter um exemplo de como usar um ponto de interrupção no passado, consulte Debugging com viagem no tempo - Guia passo a passo da aplicação.

Próximos passos

Agora que tem um rastreamento TTD gravado, pode reproduzir o rastreamento ou trabalhar com o arquivo, por exemplo, partilhá-lo com um colega. Para obter mais informações, consulte estes tópicos.

Depuração Temporal - Reproduzir uma linha de execução

Depuração Temporal - Trabalhando com ficheiros de rastreio

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

Depuração de Viagem no Tempo - Exemplo de Visão Geral do Aplicativo

Ver também

Depuração de Time Travel - Visão Geral