Depuração de viagem no tempo - Solução de problemas
Esta seção descreve como solucionar problemas de rastreamentos de viagem no tempo.
Problemas ao tentar gravar um processo
Recebo uma mensagem de erro que diz "WinDbg deve ser executado elevado para dar suporte à 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 selecione Mais>Executar como Administrador.
Instalei o WinDbg com uma conta que não tem privilégios de administrador e recebo uma mensagem de erro que diz "O WinDbg deve ser executado com privilégios elevados para dar suporte à Depuração de Viagem no Tempo"
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
Não há suporte para isso no momento, mas você pode anexar e gravar um aplicativo UWP já em execução.
Não consigo gravar um tipo de processo incomum - rodando em outra sessão, contexto de segurança, credenciais...
Neste momento, o TTD registra apenas processos regulares que você pode ser iniciado normalmente a partir de um console de comando ou clicando em um executável ou atalho no Windows Explorer.
Não consigo gravar com êxito meu aplicativo 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 com sucesso no meu computador
A gravação TTD é uma tecnologia invasiva, que pode interferir em 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 "Coisas a serem observadas" em Depuração de Viagem no Tempo – Visão geral para obter informações sobre incompatibilidades conhecidas de TTD.
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, desabilite 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 o . Arquivos de índice IDX
A depuração de um arquivo de rastreamento sem um arquivo de índice ou com um arquivo de índice corrompido ou incompleto é possível, mas não é recomendada. O arquivo de índice é necessário para garantir que os valores de memória lidos do processo depurado 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 . IDX associado ao arquivo . RUN arquivo de rastreamento.
Se você pode tentar recriar o arquivo 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:
- Feche o depurador.
- Exclua o arquivo IDX existente, ele terá o mesmo nome que o arquivo . RUN e estar localizado no mesmo diretório que o arquivo . RUN é.
- Abra o rastreamento . RUN no WinDbg. Isso executará o
!index
comando para recriar o índice. - Use o
!index -status
comando para confirmar se o índice de rastreamento está funcional.
Verifique se há espaço suficiente para o arquivo de índice no mesmo local em que 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 da ordem de duas vezes maior.
Problemas com o Trace . Arquivos RUN
Quando há problemas com o rastreamento . RUN, você 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 . RUN não pode ser usado e deve ser regravado.
Regravar o aplicativo de modo de usuário
Se houver um problema específico com a gravação de um aplicativo no modo de usuário, você pode tentar gravar um aplicativo diferente no mesmo computador 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, que executa as instruções do processo depurado para replicar o estado desse processo em todas as posições da gravação. Os descarrilamentos acontecem quando esse 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 no local 0x7FFE5EEB4448, na posição 2A550B:108 no rastreamento, que tentou ler alguma memória em torno do local 0x600020, que não existe na gravação.
Os descarrilamentos geralmente são 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, essa mensagem de falha indica que o . RUN terá uma lacuna no thread que descarrilou, começando no ponto em que descarrilou, para algum número indeterminado de instruções. Se o evento de interesse que você está tentando depurar não tiver ocorrido durante essa lacuna, o rastreamento poderá ser utilizável. Se o evento de interesse ocorreu durante essa lacuna, o rastreamento precisará ser registrado novamente.