Débogage de voyage dans le temps - Dépannage
Cette section explique comment résoudre les problèmes liés aux traces de voyage dans le temps.
Problèmes lors de la tentative d’enregistrement d’un processus
J’obtiens un message d’erreur indiquant que « WinDbg doit être exécuté avec élévation de privilèges pour prendre en charge le débogage de voyage dans le temps »
Comme le indique le message, l’exécution du débogueur avec élévation de privilèges est requise. Pour exécuter le débogueur avec élévation de privilèges, cliquez avec le bouton droit sur l’icône WinDbg dans le menu Démarrer, puis sélectionnez Plus>d’exécution en tant qu’administrateur.
J’ai installé WinDbg avec un compte qui n’a pas de privilèges d’administrateur et je reçois un message d’erreur indiquant que « WinDbg doit être exécuté avec élévation de privilèges pour prendre en charge le débogage de voyage dans le temps »
Réinstallez WinDbg à l’aide d’un compte disposant de privilèges d’administrateur et utilisez ce compte lors de l’enregistrement dans le débogueur.
Je ne peux pas lancer et enregistrer une application UWP
Cela n’est pas pris en charge pour l’instant, mais vous pouvez l’attacher et enregistrer une application UWP déjà en cours d’exécution.
Je ne peux pas enregistrer un type de processus inhabituel : en cours d’exécution dans une autre session, contexte de sécurité, informations d’identification...
À ce stade, TTD enregistre uniquement les processus réguliers que vous pouvez normalement lancer à partir d’une console de commandes ou en cliquant sur un exécutable ou un raccourci dans l’Explorateur Windows.
Je ne parvient pas à enregistrer mon application sur mon ordinateur
Si l’enregistrement de votre application échoue, vérifiez que vous pouvez enregistrer un processus Windows simple. Par exemple, « ping.exe » ou « cmd.exe » sont des processus simples qui peuvent normalement être enregistrés.
Je ne peux pas enregistrer quoi que ce soit sur mon ordinateur
L’enregistrement TTD est une technologie invasive, qui peut interférer avec d’autres technologies invasives telles que les infrastructures de virtualisation d’applications, les produits de gestion des informations, les logiciels de sécurité ou les produits antivirus.
Pour plus d’informations sur les incompatibilités TTD connues, consultez « Éléments à rechercher » dans le débogage de voyage dans le temps .
Je trace une application et exécute AppVerifier en même temps, et les performances lors de la relecture de la trace sont lentes.
En raison de la façon dont AppVerifier utilise la mémoire pour vérifier l’application, l’expérience ultérieurement lors de la relecture de la trace peut être notablement pire que sans AppVerifier. Pour améliorer les performances, désactivez AppVerifier lors de l’enregistrement de l’application. Si cela n’est pas possible, vous devrez peut-être fermer la fenêtre de pile d’appels dans WinDbg pour améliorer les performances.
Problèmes liés à . Fichiers d’index IDX
Le débogage d’un fichier de trace sans fichier d’index, ou avec un fichier d’index endommagé ou incomplet, est possible, mais n’est pas recommandé. Le fichier d’index est nécessaire pour garantir que les valeurs de mémoire lues à partir du processus débogué sont les plus précises et pour augmenter l’efficacité de toutes les autres opérations de débogage.
Utilisez la !index -status
commande pour examiner l’état du . Fichier d’index IDX associé au fichier . Fichier de trace RUN.
Si vous pouvez essayer de recréer le fichier d’index en exécutant !index -force
.
Recréation du . Fichier d’index IDX
Si vous soupçonnez et rencontrez un problème avec le fichier d’index, ou !index -status
indique tout autre élément que « Fichier d’index chargé », recréez-le.
Pour ce faire, vous pouvez exécuter !index -force
. En cas d’échec :
- Fermez le débogueur.
- Supprimez le fichier IDX existant, il aura le même nom que le fichier . Run trace file and be located in the same directory that the . Le fichier RUN est.
- Ouvrez la trace . Fichier RUN dans WinDbg. Cette opération exécute la
!index
commande pour recréer l’index. - Utilisez la
!index -status
commande pour vérifier que l’index de trace est fonctionnel.
Vérifiez qu’il y a suffisamment d’espace pour le fichier d’index dans le même emplacement où réside le fichier de trace. Selon le contenu de l’enregistrement, le fichier d’index peut être beaucoup plus grand que le fichier de trace, généralement dans l’ordre de deux fois plus grand.
Problèmes liés à Trace . Fichiers RUN
Quand il y a des problèmes avec la trace . Fichier RUN, vous pouvez recevoir des messages d’erreur tels que ceux-ci.
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
Dans la plupart des cas, tous les messages d’échec indiquent que le . Le fichier de trace RUN n’est pas utilisable et doit être réinscrit.
Réinscrire l’application en mode utilisateur
S’il existe un problème spécifique lié à l’enregistrement d’une application en mode utilisateur, vous pouvez essayer d’enregistrer une autre application sur le même PC ou d’essayer la même application sur un autre PC. Vous pouvez essayer d’enregistrer une autre utilisation de l’application pour voir s’il existe un problème spécifique lié à l’enregistrement de certaines parties de l’application.
Lors du débogage ou de la création de l’index, je vois des messages sur les « événements de déraillement ».
Il est possible que vous voyiez des messages comme celui-ci :
Derailment event MissingDataDerailment(7) on UTID 2, position 2A550B:108 with PC 0x7FFE5EEB4448 Request address: 0x600020, size: 32
TTD fonctionne en exécutant un émulateur à l’intérieur du débogueur, qui exécute les instructions du processus débogué afin de répliquer l’état de ce processus à chaque position de l’enregistrement. Les déraillements se produisent lorsque cet émulateur observe une certaine différence entre l’état résultant et les informations trouvées dans le fichier de trace. L’erreur ci-dessus, par exemple, fait référence à une instruction trouvée sur l’emplacement 0x7FFE5EEB4448, à la position 2A550B :108 dans la trace, qui a tenté de lire une certaine mémoire autour de l’emplacement 0x600020, qui n’existe pas dans l’enregistrement.
Les déraillements sont souvent provoqués par une erreur dans l’enregistreur, ou parfois dans l’émulateur, à certaines instructions enregistrées plus loin dans la trace.
Dans la plupart des cas, ce message d’échec indique que le . Le fichier de trace RUN aura un écart dans le thread qui a déraillé, en commençant au point qu’il a déraillé, pour un nombre indéterminé d’instructions. Si l’événement d’intérêt que vous essayez de déboguer n’a pas eu lieu pendant cet écart, la trace peut être utilisable. Si l’événement d’intérêt s’est produit pendant cet écart, la trace doit être réinscrite.