Debug di viaggi temporali - Risoluzione dei problemi

Logo di debug di viaggi in tempo con un orologio.

Questa sezione descrive come risolvere i problemi relativi alle tracce di viaggio temporali.

Problemi durante il tentativo di registrare un processo

Viene visualizzato un messaggio di errore che indica che "WinDbg deve essere eseguito con privilegi elevati per supportare il debug di viaggi temporali"

Come indica il messaggio, l'esecuzione del debugger con privilegi elevati è un requisito. Per eseguire il debugger con privilegi elevati, fare clic con il pulsante destro del mouse sull'icona WinDbg nel menu start e quindi scegliere Altro>esegui come amministratore.

È stato installato WinDbg con un account che non dispone dei privilegi di amministratore e viene visualizzato un messaggio di errore che indica che "WinDbg deve essere eseguito con privilegi elevati per supportare il debug di viaggi temporali"

Reinstallare WinDbg usando un account con privilegi di amministratore e usarlo durante la registrazione nel debugger.

Non è possibile avviare e registrare un'applicazione UWP

Questa operazione non è supportata in questo momento, ma è possibile allegare e registrare un'applicazione UWP già in esecuzione.

Non è possibile registrare un <nome di tipo di processo insolito: in esecuzione in un'altra sessione, contesto di sicurezza, credenziali...> processo

A questo punto, TTD registra solo processi regolari che è possibile avviare normalmente da una console di comandi o facendo clic su un eseguibile o un collegamento in Esplora risorse.

Impossibile registrare correttamente l'applicazione nel computer

Se la registrazione dell'applicazione ha esito negativo, verificare che sia possibile registrare un semplice processo di Windows. Ad esempio, "ping.exe" o "cmd.exe" sono processi semplici che normalmente possono essere registrati.

Non riesco a registrare nulla sul mio computer

La registrazione TTD è una tecnologia invasiva, che può interferire con altre tecnologie invasive come framework di virtualizzazione delle applicazioni, prodotti di gestione delle informazioni, software di sicurezza o prodotti antivirus.

Vedere "Cose da cercare" in Debug di viaggi temporali - Panoramica per informazioni sulle incompatibilità TTD note.

Si traccia un'applicazione e si esegue AppVerifier contemporaneamente e le prestazioni durante la riproduzione della traccia sono lente.

A causa del modo in cui AppVerifier usa la memoria per controllare l'applicazione, l'esperienza successiva quando si esegue la riproduzione della traccia può essere notevolmente peggiore rispetto a senza AppVerifier. Per migliorare le prestazioni, disabilitare AppVerifier durante la registrazione dell'app. Se non è possibile, potrebbe essere necessario chiudere la finestra del callstack in WinDbg per migliorare le prestazioni.

Problemi con . File di indice IDX

È possibile eseguire il debug di un file di traccia senza un file di indice o con un file di indice danneggiato o incompleto, ma non è consigliabile. Il file di indice è necessario per garantire che i valori di memoria letti dal processo di debug siano più accurati e per aumentare l'efficienza di tutte le altre operazioni di debug.

Usare il !index -status comando per esaminare lo stato dell'oggetto . File di indice IDX associato all'oggetto . ESEGUIRE il file di traccia.

Se è possibile provare a ricreare il file di indice eseguendo !index -force.

Ricreazione dell'oggetto . File di indice IDX

Se si sospetta e si verifica un problema con il file di indice o !index -status si dice qualcosa diverso da "File di indice caricato", ricrearlo. A tale scopo, è possibile eseguire !index -force. In caso contrario:

  1. Chiudere il debugger.
  2. Eliminare il file IDX esistente, avrà lo stesso nome di . Eseguire il file di traccia e trovarsi nella stessa directory che l'oggetto . Il file RUN è.
  3. Aprire la traccia . Eseguire il file in WinDbg. Verrà eseguito il !index comando per ricreare l'indice.
  4. Usare il !index -status comando per verificare che l'indice di traccia sia funzionale.

Assicurarsi che sia disponibile spazio sufficiente per il file di indice nella stessa posizione in cui risiede il file di traccia. A seconda del contenuto della registrazione, il file di indice può essere significativamente maggiore del file di traccia, in genere sull'ordine di due volte più grande.

Problemi relativi alla traccia . File RUN

Quando si verificano problemi con la traccia . Il file RUN può ricevere messaggi di errore, ad esempio questi.

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

Nella maggior parte dei casi tutti i messaggi di errore indicano che . Il file di traccia RUN non è utilizzabile e deve essere nuovamente registrato.

Registrare nuovamente l'app in modalità utente

Se si verifica un problema specifico con la registrazione di un'app in modalità utente, è possibile provare a registrare un'app diversa nello stesso PC o provare la stessa app in un PC diverso. È possibile provare a registrare un uso diverso dell'app per verificare se si verifica un problema specifico con la registrazione di determinate parti dell'app.

Quando si esegue il debug o si crea l'indice, vengono visualizzati messaggi relativi a "Eventi di derailment".

È possibile che vengano visualizzati messaggi come questo:

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

TTD funziona eseguendo un emulatore all'interno del debugger, che esegue le istruzioni del processo sottoposto a debug per replicare lo stato di tale processo in ogni posizione della registrazione. I railments si verificano quando questo emulatore osserva una sorta di discrepanza tra lo stato risultante e le informazioni trovate nel file di traccia. L'errore riportato sopra, ad esempio, fa riferimento a un'istruzione trovata nella posizione 0x7FFE5EEB4448, alla posizione 2A550B:108 nella traccia, che ha tentato di leggere una memoria intorno alla posizione 0x600020, che non esiste nella registrazione.

I deragliamenti sono spesso causati da un errore nel registratore o talvolta nell'emulatore, in alcune istruzioni registrate ulteriormente nella traccia.

Nella maggior parte dei casi questo messaggio di errore indica che . Il file di traccia RUN avrà un divario nel thread che si è verificato, a partire dal punto in cui è stata annullata, per un numero indeterminato di istruzioni. Se l'evento di interesse che si sta tentando di eseguire il debug non si è verificato durante tale gap, la traccia potrebbe essere utilizzabile. Se l'evento di interesse si è verificato durante tale gap, è necessario registrare nuovamente la traccia.

Vedere anche

Debug di viaggi temporali - Panoramica