Partager via


Débogage User-Mode processus sans symboles

Il est important d’avoir des symboles sur l’ordinateur défaillant avant de démarrer le débogueur pour une défaillance en mode utilisateur. Toutefois, parfois, le débogueur est démarré sans symboles. Si le problème est facilement reproductible, vous pouvez simplement copier des symboles et réexécuter. Toutefois, si le problème ne se produit pas à nouveau, certaines informations peuvent toujours être extraites de l’échec :

  1. Pour déterminer ce que signifient les adresses, vous avez besoin d’un ordinateur qui correspond à celui avec l’erreur. Il doit avoir la même plateforme (x86 ou x64) et être chargé avec la même version de Windows.

  2. Une fois l’ordinateur configuré, copiez les symboles en mode utilisateur et les fichiers binaires que vous souhaitez déboguer sur la nouvelle machine.

  3. Démarrez CDB ou WinDbg sur l’ordinateur sans symbole.

  4. Si vous ne savez pas quelle application a échoué sur l’ordinateur sans symbole, émettez un | (État du processus) Commande. Si cela ne vous donne pas de nom, entrez KD sur l’ordinateur sans symbole et effectuez un processus !process 0 0, en recherchant l’ID de processus donné par la commande CDB.

  5. Lorsque les deux débogueurs sont configurés (l’un avec des symboles qui n’ont pas rencontré l’erreur et l’autre qui a rencontré l’erreur mais est sans symboles), émettez une commande k (Display Stack Backtrace) sur l’ordinateur sans symbole.

  6. Sur l’ordinateur avec des symboles, émettez une commande u (Unassemble) pour chaque adresse donnée sur la pile sans symbole. Cela vous donnera la trace de pile de l’erreur sur l’ordinateur sans symbole.

  7. En examinant une trace de pile, vous pouvez voir les noms de module et de fonction impliqués dans l’appel.