Partilhar via


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

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

Esta seção descreve como resolver problemas de rastros de viagem no tempo.

Problemas ao tentar gravar um processo

Recebo uma mensagem de erro que diz "O WinDbg deve ser executado com privilégios elevados para suportar a Depuração de Viagem no Tempo"

Como a mensagem indica, executar o depurador elevado é um requisito. Para executar o depurador elevado, clique com o botão direito do mouse no ícone WinDbg no menu Iniciar e, em seguida, selecione Mais>Executar como administrador.

Eu instalei o WinDbg com uma conta que não possui privilégios de administrador e recebo uma mensagem de erro que diz "WinDbg deve ser executado com privilégios elevados para suportar a depuração retroativa".

Reinstale o WinDbg usando uma conta que tenha privilégios de administrador e use essa conta ao gravar no depurador.

Não consigo iniciar e gravar um aplicativo UWP

Isso não é suportado no momento, mas você pode anexar e gravar um aplicativo UWP já em execução.

Não consigo gravar um tipo de processo incomum - em execução em outra sessão, contexto de segurança, credenciais...

Neste momento, o TTD apenas regista processos regulares que podem ser normalmente iniciados a partir de uma consola de comandos ou clicando num executável ou atalho no Explorador do Windows.

Não consigo gravar com êxito a minha aplicação no meu computador

Se a gravação do seu aplicativo falhar, verifique se você pode gravar um processo simples do Windows. Por exemplo, "ping.exe" ou "cmd.exe" são processos simples que normalmente podem ser gravados.

Não consigo gravar nada no meu computador

A gravação TTD é uma tecnologia invasiva, que pode interferir com outras tecnologias invasivas, como estruturas de virtualização de aplicativos, produtos de gerenciamento de informações, software de segurança ou produtos antivírus.

Consulte "Aspectos a ter em atenção" em Depuração de TTD - Visão geral para obter informações sobre incompatibilidades TTD conhecidas.

Estou rastreando um aplicativo e executando o AppVerifier ao mesmo tempo, e o desempenho ao reproduzir o rastreamento é lento.

Devido à maneira como o AppVerifier usa a memória para verificar o aplicativo, a experiência posterior ao reproduzir o rastreamento pode ser visivelmente pior do que sem o AppVerifier. Para melhorar o desempenho, desative o AppVerifier ao gravar o aplicativo. Se isso não for possível, talvez seja necessário fechar a janela da pilha de chamadas no WinDbg para melhorar o desempenho.

Problemas com arquivos de índice .IDX

Depurar um arquivo de rastreamento sem um arquivo de índice, ou com um arquivo de índice corrompido ou incompleto, é possível, mas não é recomendado. O arquivo de índice é necessário para garantir que os valores de memória lidos do processo de depuração sejam mais precisos e para aumentar a eficiência de todas as outras operações de depuração.

Use o !index -status comando para examinar o estado do . Arquivo de índice IDX associado ao arquivo . EXECUTAR arquivo de rastreamento.

Se for possível, pode tentar recriar o ficheiro de índice executando !index -force.

Recriando o arquivo de índice .IDX

Se você suspeitar e tiver problemas com o arquivo de índice, ou !index -status disser algo diferente de "Arquivo de índice carregado", recrie-o. Para fazer isso, você pode executar !index -force. Se isso falhar:

  1. Feche o depurador.
  2. Exclua o ficheiro IDX existente, que terá o mesmo nome que o ficheiro de rastreio .RUN e estará localizado no mesmo diretório onde está o ficheiro .RUN.
  3. Abra o arquivo .RUN de rastreio no WinDbg. Isso executará o !index comando para recriar o índice.
  4. Use o !index -status comando para confirmar se o índice de rastreamento é funcional.

Verifique se há espaço suficiente para o arquivo de índice no mesmo local onde o arquivo de rastreamento reside. Dependendo do conteúdo da gravação, o arquivo de índice pode ser significativamente maior do que o arquivo de rastreamento, normalmente na ordem de duas vezes maior.

Problemas com arquivos Trace .RUN

Quando há problemas com o arquivo de rastreio .RUN, pode receber mensagens de erro como estas.

Replay and log are out of sync at fallback data. Packet type is incorrect "Packet Type"
Replay and log are out of sync at opaque data. Log had already reached the end
Replay exit thread event does not match up with logged event
Logged debug write values are out of sync with replay

Na maioria dos casos, todas as mensagens de falha indicam que o . O arquivo de rastreamento RUN não é utilizável e deve ser regravado.

Regravando o aplicativo de modo de usuário

Se houver um problema específico com a gravação de um aplicativo de modo de usuário, você pode tentar gravar um aplicativo diferente no mesmo PC ou tentar o mesmo aplicativo em um computador diferente. Você pode tentar gravar um uso diferente do aplicativo para ver se há um problema específico com a gravação de certas partes do aplicativo.

Ao depurar ou criar o índice, vejo mensagens sobre "Eventos de descarrilamento".

É possível que você veja mensagens como esta:

Derailment event MissingDataDerailment(7) on UTID 2, position 2A550B:108 with PC 0x7FFE5EEB4448 Request address: 0x600020, size: 32

O TTD funciona executando um emulador dentro do depurador, o qual realiza as instruções do processo que está sendo depurado para replicar o estado desse processo em cada etapa da gravação. Os descarrilamentos acontecem quando este emulador observa algum tipo de discrepância entre o estado resultante e as informações encontradas no arquivo de rastreamento. O erro citado acima, por exemplo, refere-se a uma instrução encontrada na localização 0x7FFE5EEB4448, na posição 2A550B:108 no traço, que tentou ler alguma memória em torno da localização 0x600020, que não existe na gravação.

Os descarrilamentos são muitas vezes causados por algum erro no gravador, ou às vezes no emulador, em alguma instrução gravada mais atrás no rastreamento.

Na maioria dos casos, esta mensagem de erro indica que o ficheiro de rastreamento .RUN terá uma lacuna no tópico que descarrilou, começando no ponto em que isso ocorreu, abrangendo um número indeterminado de instruções. Se o evento de interesse que você está tentando depurar não aconteceu durante esse intervalo, o rastreamento pode ser utilizável. Se o evento de interesse ocorreu durante esse intervalo, o rastreamento precisará ser regravado.

Ver também

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

Notas de versão da depuração de viagem no tempo