Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment bien démarrer avec le débogage Windows à l’aide de WinDbg et d’autres outils de débogage. Vous allez apprendre à :
- Installer le débogueur et configurer les systèmes hôtes et cibles
- Configurer votre environnement de débogage
- Maîtrisez les techniques de débogage essentielles pour les scénarios en mode noyau et en mode utilisateur
Note: Si vous souhaitez analyser un vidage sur incident à la place, consultez Analyser les fichiers de vidage sur incident à l’aide de WinDbg.
Pour commencer à déboguer Windows, procédez comme suit.
1. Installer le débogueur Windows
Installez WinDbg pour commencer le débogage des applications et pilotes Windows. Pour obtenir des instructions d’installation détaillées, consultez Installer WinDbg.
2. Identifier les systèmes hôtes et cibles
Deux systèmes informatiques distincts sont généralement utilisés pour le débogage, car l’exécution d’instructions sur le processeur est généralement suspendue pendant le processus. Le débogueur s’exécute sur le système hôte, et le code que vous souhaitez déboguer s’exécute sur le système cible .
Hôte <--------------------------------------------------> Cible
Dans certains cas, il est possible d’utiliser une machine virtuelle comme deuxième système. Par exemple, un PC virtuel peut s’exécuter sur le même PC que le code que vous devez déboguer. Toutefois, si votre code communique avec du matériel de bas niveau, l’utilisation d’un PC virtuel peut ne pas être la meilleure approche. Pour plus d’informations, consultez Configuration du débogage réseau d’une machine virtuelle - KDNET.
3. Déterminer le type de débogueur : mode noyau ou mode utilisateur
Ensuite, vous devez déterminer s’il faut utiliser le mode noyau ou le débogage en mode utilisateur.
Le système d’exploitation et les programmes privilégiés s’exécutent en mode noyau . Le code en mode noyau est autorisé à accéder à n’importe quelle partie du système, et il n’est pas limité comme le code en mode utilisateur. Le code en mode noyau peut accéder à n’importe quelle partie de tout autre processus en cours d’exécution en mode utilisateur ou en mode noyau. La plupart des fonctionnalités principales du système d’exploitation et de nombreux pilotes de périphériques matériels s’exécutent en mode noyau.
Les applications et sous-systèmes sur l’ordinateur s’exécutent en mode utilisateur . Les processus qui s’exécutent en mode utilisateur le font dans leurs propres espaces d’adressage virtuels. Ils ne peuvent pas accéder directement à de nombreuses parties du système, notamment le matériel système, la mémoire qui n’est pas allouée pour leur utilisation et d’autres parties du système susceptibles de compromettre l’intégrité du système. Les processus qui s’exécutent en mode utilisateur sont efficacement isolés du système et d’autres processus en mode utilisateur, de sorte qu’ils ne peuvent pas interférer avec ces ressources.
Si votre objectif est de déboguer un pilote, déterminez si le pilote est un pilote en mode noyau ou un pilote en mode utilisateur. Les pilotes WDM (Windows Driver Model) et Kernel-Mode Driver Framework (KMDF) sont tous deux des pilotes en mode noyau. Comme le suggère le nom, les pilotes User-Mode du Framework de pilotes utilisateur (UMDF) sont des pilotes en mode utilisateur.
Pour certains problèmes, il peut être difficile de déterminer le mode dans lequel le code s’exécute. Dans ce cas, vous devrez peut-être choisir un mode et voir quelles informations sont disponibles dans ce mode. Certains problèmes nécessitent l’utilisation du débogueur en mode utilisateur et en mode noyau.
Selon le mode dans lequel vous déboguez, vous devrez peut-être configurer et utiliser les débogueurs de différentes façons. Certaines commandes de débogage fonctionnent de la même façon dans les deux modes, et certaines commandes fonctionnent différemment.
Étapes suivantes pour le débogage en mode noyau
- Prise en main de WinDbg (mode noyau) - Terminer la configuration et la première session de débogage
- Déboguer des pilotes universels : laboratoire pas à pas (mode noyau d’écho) - Laboratoire pratique avec pilote d’écho
- Déboguer les pilotes : labo pas à pas (mode noyau Sysvad) - Labo pratique avec le pilote audio
Étapes suivantes pour le débogage en mode utilisateur
- Prise en main de WinDbg (mode utilisateur) - Terminer la configuration et la première session de débogage
4. Choisissez votre environnement de débogueur
Le débogueur WinDbg fonctionne bien dans la plupart des cas, mais il existe des moments où vous souhaiterez peut-être utiliser un autre débogueur, tel que des débogueurs de console pour l’automatisation ou Visual Studio. Pour plus d’informations, veuillez consulter la section Environnements de débogage.
5. Déterminer comment connecter la cible et l’hôte
En règle générale, vous connectez des systèmes cibles et hôtes à l’aide d’un réseau Ethernet. Si vous effectuez un travail de mise en route précoce ou si un appareil n'est pas connecté à Ethernet, d'autres options de connexion réseau sont disponibles. Pour plus d’informations, consultez les articles suivants :
- Configurer le débogage du noyau réseau KDNET automatiquement
- configurer le débogage réseau d’une machine virtuelle - KDNET
6. Choisissez les outils de débogage en version 32 bits ou 64 bits
Que vous ayez besoin d'un débogueur 32 bits ou 64 bits dépend de la version de Windows exécutée sur les systèmes hôtes et cibles, ainsi que du fait que vous déboguez du code 32 bits ou 64 bits. Pour plus d’informations, consultez Choix des outils de débogage 32 bits ou 64 bits.
7. Configurer des symboles
Pour utiliser toutes les fonctionnalités avancées que WinDbg fournit, vous devez charger les symboles appropriés. Si vous ne configurez pas correctement les symboles, vous recevez des messages indiquant que les symboles ne sont pas disponibles lorsque vous tentez d’utiliser des fonctionnalités qui dépendent des symboles. Pour plus d’informations, veuillez consulter la section Symboles pour le débogage Windows.
8. Configurer le code source
Si votre objectif est de déboguer votre propre code source, vous devez configurer un chemin d’accès à votre code source. Pour plus d’informations, veuillez consulter la section Chemin source.
9. Familiarisez-vous avec l’opération du débogueur
La section de cette documentation décrit le fonctionnement du débogueur pour différentes tâches. Par exemple, Conserver un fichier journal dans WinDbg décrit comment WinDbg peut écrire un fichier journal qui enregistre la session de débogage.
10. Familiarisez-vous avec les techniques de débogage
techniques de débogage standard s’appliquent à la plupart des scénarios de débogage, et des exemples incluent la définition de points d’arrêt, l’inspection de la pile des appels et la recherche d’une fuite de mémoire. techniques de débogage spécialisées s’appliquent à des technologies ou types de code particuliers. Les exemples incluent le débogage Plug-and-Play, le débogage KMDF et le débogage RPC.
11. Utiliser les commandes de référence du débogueur
Vous pouvez utiliser différentes commandes de débogage lorsque vous travaillez dans le débogueur. Pour obtenir de l’aide sur n’importe quelle commande lors du débogage, utilisez la .hh commande suivie du nom de la commande.
Exemples :
.hh bp # Get help on breakpoint commands
.hh k # Get help on call stack commands
Pour obtenir la liste complète des commandes disponibles, consultez Référence du Débogueur.
12. Utiliser des extensions de débogage pour des technologies spécifiques
Vous pouvez utiliser plusieurs extensions de débogage pour analyser des structures de données spécifiques au domaine. Pour plus d’informations, veuillez consulter la section Extensions spécialisées. Pour plus d’informations sur la façon de charger des extensions de débogueur, consultez Chargement des extensions de DLL de débogueur.
13. En savoir plus sur le fonctionnement interne de Windows associé
Cette documentation part du principe que vous avez des connaissances sur les internes Windows de base. Pour en savoir plus sur les éléments internes Windows, notamment l’utilisation de la mémoire, le contexte, les threads et les processus, vous pouvez consulter des ressources telles que Windows Internals by Pavel Yosifovich, Mark E. Russinovich, David A. Salomon et Alex Ionescu.
14. Passer en revue les ressources de débogage supplémentaires
D’autres ressources incluent les livres et vidéos suivants :
- Inside Windows Debugging: Practical Debugging and Tracing Strategies par Tarik Soulami
- Débogage Windows avancé par Mario Hewardt et Daniel Pravat
- Defrag Tools série vidéo, épisodes 13 à 29, tout sur WinDbg
Étapes suivantes
Choisissez votre mode de débogage pour continuer :
Débogage en mode noyau (pour les pilotes et les composants du système d’exploitation) :
- Démarrez avec WinDbg (mode noyau)
- Déboguer les pilotes universels : atelier pas à pas (mode noyau echo)
Débogage en mode utilisateur (pour les applications) :
Conseils d’installation supplémentaires :