Partager via


Commencez avec le débogage Windows

Cet article explique comment commencer à déboguer pour Windows. Si votre objectif est d’utiliser le débogueur pour analyser un fichier de vidage de mémoire, veuillez consulter la section Analyser les fichiers de vidage de mémoire en utilisant WinDbg.

Pour commencer à déboguer Windows, procédez comme suit.

1. Installer le débogueur Windows

Pour plus d’informations sur l’installation de WinDbg, 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

Diagramme illustrant la connexion entre les systèmes hôtes et cibles avec une double flèche.

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.

En savoir plus sur l’utilisation du débogueur en mode noyau :

En savoir plus sur l’utilisation du débogueur en mode utilisateur :

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, les systèmes cibles et hôtes sont connectés par 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 :

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 n’avez pas correctement configuré de symboles, vous recevrez des messages indiquant que les symboles ne sont pas disponibles lorsque vous tentez d’utiliser des fonctionnalités dépendantes 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. Utilisez la commande .hh dans le débogueur pour afficher des informations utiles sur n’importe quelle commande de débogage. Pour plus d’informations sur les commandes disponibles, veuillez consulter la section Référence du débogueur.

12. Utiliser des extensions de débogage pour des technologies spécifiques

Il existe plusieurs extensions de débogage qui peuvent être utilisées pour analyser des structures de données spécifiques au domaine. Pour plus d’informations, veuillez consulter la section Extensions spécialisées. Chargement des DLL d’extension de débogueur explique comment charger des extensions de débogueur.

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 par 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

Voir aussi