Partager via


Configurer automatiquement le débogage du noyau réseau KDNET

Les outils de débogage pour Windows prennent en charge le débogage du noyau sur un réseau. Cet article décrit comment configurer automatiquement le débogage réseau en utilisant l’outil de configuration kdnet.exe.

L’ordinateur qui exécute le débogueur est appelé l’ordinateur hôte, et l’ordinateur en cours de débogage est appelé l’ordinateur cible. L’ordinateur hôte doit exécuter Windows 7 ou une version ultérieure, et l’ordinateur cible doit exécuter Windows 8 ou une version ultérieure.

Déterminez les adresses IP de l’ordinateur hôte.

  1. Assurez-vous que les PC cible et hôte sont connectés à un hub ou à un commutateur réseau à l’aide d’un câble réseau approprié.

  2. Sur l’ordinateur hôte, ouvrez une invite de commande et entrez IPConfig pour afficher la configuration IP.

  3. Dans la sortie de commande, localisez l’adresse IPv4 de l’adaptateur Ethernet.

...

Ethernet adapter Ethernet:
...

IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
...

Vous pouvez également utiliser Paramètres, Réseau & internet, Ethernet pour recueillir les informations sur l’adresse IPv4.

  1. Notez l’adresse IPv4 de l’adaptateur réseau que vous avez l’intention d’utiliser pour le débogage.

Configurer les ordinateurs hôte et cible

Utilisez l’utilitaire kdnet.exe pour configurer automatiquement les paramètres du débogueur sur le PC cible en suivant cette procédure :

  1. Confirmez que les outils de débogage Windows sont installés sur le système hôte. Pour des informations sur le téléchargement et l’installation des outils de débogage, consultez la rubrique Outils de débogage pour Windows.

  2. Localisez les fichiers kdnet.exe et VerifiedNICList.xml. Par défaut, les fichiers se trouvent à l’emplacement suivant :

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    

    Ces instructions supposent que les deux PC exécutent une version 64 bits de Windows sur la cible et l’hôte. Si ce n’est pas le cas, la meilleure approche est d’exécuter les outils de la même « architecture » que celle utilisée par la cible. Par exemple, si la cible exécute Windows 32 bits, exécutez une version 32 du débogueur sur l’hôte. Pour plus d’informations, veuillez consulter la rubrique Choisir les outils de débogage 32 bits ou 64 bits.

  3. Sur l’ordinateur hôte, copiez les deux fichiers sur un partage réseau ou une clé USB pour qu’ils soient disponibles sur l’ordinateur cible.

  4. Sur l’ordinateur VM cible, créez un répertoire C:\KDNET et copiez les fichiers kdnet.exe et VerifiedNICList.xml dans ce répertoire.

    Important

    Avant d’utiliser kdnet.exe pour modifier les informations de démarrage, vous devrez peut-être suspendre temporairement les fonctionnalités de sécurité de Windows telles que BitLocker et le démarrage sécurisé sur le PC de test. Réactivez ces fonctionnalités de sécurité lorsque les tests sont terminés et gérez de manière appropriée le PC de test lorsque les fonctionnalités de sécurité sont désactivées.

  5. Sur l’ordinateur cible, ouvrez une invite de commande en tant qu’administrateur. Entrez cette commande pour vérifier que l’ordinateur cible dispose d’un adaptateur réseau pris en charge :

    C:\KDNET>kdnet.exe
    Network debugging is supported on the following NICs:
    busparams=1.0.0, Broadcom NetXtreme Gigabit Ethernet, Plugged in.  
    This Microsoft hypervisor supports using KDNET in guest VMs.
    
  6. Lorsque la sortie de kdnet.exe indique que l’adaptateur réseau de la cible est pris en charge, vous pouvez continuer.

  7. Entrez la commande suivante pour définir l’adresse IP du système hôte et générer une clé de connexion unique. Utilisez l’adresse IP ou le nom du système hôte. Choisissez une adresse de port unique pour chaque paire cible/hôte avec laquelle vous travaillez, dans la plage recommandée de 50000 à 50039.

    C:\KDNET>kdnet.exe <HostComputerIPAddress> <YourDebugPort> 
    
    Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
    Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
    
  8. Copiez la clé retournée dans un fichier notepad .txt.

Connecter WinDbg à la cible pour le débogage du noyau

Sur l’ordinateur hôte, ouvrez WinDbg. Dans le menu Fichier, sélectionnez Débogage du noyau. Dans la boîte de dialogue Débogage du noyau, ouvrez l’onglet Net. Collez votre numéro de port et la clé enregistrée dans le fichier notepad .txt précédemment. Cliquez sur OK.

Vous pouvez également démarrer une session WinDbg en ouvrant une invite de commande et en entrant la commande suivante. <YourPort> est le port que vous avez sélectionné précédemment, et <YourKey> est la clé qui a été retournée par kdnet.exe précédemment. Collez la clé que vous avez enregistrée dans le fichier notepad .txt plus tôt.

windbg.exe -k -d net:port=<YourDebugPort>,key=<YourKey> 

Le paramètre optionnel -d montré dans l’exemple, permet un débogage précoce. Pour plus d’informations, veuillez consulter la section Options de ligne de commande de WinDbg.

Si une demande d’autorisation pour que WinDbg accède au port à travers le pare-feu apparaît, autorisez WinDbg à accéder au port pour les trois types de réseaux différents.

Capture d’écran de l’alerte de sécurité Windows avec des sélections pour autoriser l’accès à tous les trois types de réseaux.

À ce stade, le débogueur attend que la cible se reconnecte. Le texte s’affiche dans la fenêtre de commande du débogueur. Ce texte sera similaire à ce qui suit :

Microsoft (R) Windows Debugger Version 1.0.1908.30002 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Using NET for debugging
Opened WinSock 2.0
Waiting to reconnect...

Redémarrer le PC cible

Une fois que le débogueur est à l’étape « En attente de reconnexion... », redémarrez l’ordinateur cible. Une façon de redémarrer le PC est d’utiliser cette commande depuis une invite de commande d’administrateur.

shutdown -r -t 0 

Après le redémarrage de l’ordinateur cible, le débogueur devrait se connecter automatiquement.

Conseils de dépannage

Les applications de débogage doivent être autorisées à travers un pare-feu

Du côté de l’hôte, où le débogueur est en cours d’exécution, tous les types de réseaux doivent être activés pour permettre au débogueur de communiquer avec la cible via le pare-feu.

Utilisez le Panneau de configuration pour autoriser l’accès via le pare-feu.

  1. Ouvrez le Panneau de configuration > Système et sécurité et sélectionnez Autoriser une application via le pare-feu Windows.

    • (WinDbg) Dans la liste des applications, recherchez le processus du moteur WinDbg (TCP) (tout).

    • (WinDbg classique) Dans la liste des applications, localisez Débogueur symbolique GUI Windows et Débogueur du noyau Windows.

  2. Utilisez les cases à cocher pour autoriser ces deux applications à travers tous les trois types de réseaux différents.

  3. Faites défiler vers le bas et sélectionnez OK pour enregistrer les modifications du pare-feu. Redémarrez le débogueur.

    Capture d’écran de la configuration du pare-feu du Panneau de configuration affichant les applications Windows GUI Symbolic Debugger et Windows Kernel Debugger avec les trois types de réseaux activés.

Utilisez le ping pour tester la connectivité.

Si le débogueur expire et ne se connecte pas, utilisez la commande ping sur le PC cible pour vérifier la connectivité.

   C:\>Ping <HostComputerIPAddress>

Choisir un port pour le débogage réseau

Si le débogueur expire et ne se connecte pas, cela peut être dû au fait que le numéro de port par défaut de 50000 est déjà utilisé ou est bloqué.

Vous pouvez choisir n’importe quel numéro de port de 49152 à 65535. La plage recommandée est comprise entre 50000 et 50039. Le port que vous choisissez est ouvert pour un accès exclusif par le débogueur fonctionnant sur l’ordinateur hôte.

La plage de numéros de port pouvant être utilisée pour le débogage réseau peut être limitée par la politique réseau de votre entreprise. Pour déterminer si la politique de votre entreprise limite la plage de ports qui peuvent être utilisés pour le débogage réseau, consultez vos administrateurs réseau.

Adaptateurs réseau pris en charge

Si « Le débogage réseau n’est pas pris en charge sur aucune des cartes NIC de cette machine » s’affiche lorsque vous exécutez kdnet.exe, cela signifie que l’adaptateur réseau n’est pas pris en charge.

L’ordinateur hôte peut utiliser n’importe quelle carte réseau, mais l’ordinateur cible doit utiliser une carte réseau prise en charge par les outils de débogage pour Windows. Pour obtenir la liste des cartes réseau prises en charge, consultez les cartes réseau Ethernet prises en charge pour le débogage du noyau réseau dans Windows 10 et les cartes réseau Ethernet prises en charge pour le débogage du noyau réseau dans Windows 8.1.

Activer d’autres types de débogage

À partir de la mise à jour Windows 10 d’octobre 2020 (20H2), les options suivantes sont prises en charge pour activer quatre types de débogage :

Toute combinaison de types de débogage peut être spécifiée.

Si aucun type de débogage n’est spécifié, le débogage du noyau est activé.

Si le débogage de l’hyperviseur et du noyau est activé, le port de l’hyperviseur est défini sur <YourDebugPort> + 1.

Exemple d’utilisation

Utilisez l’option - bkw pour activer le débogage de bootmgr, du noyau et de winload.

C:\>kdnet.exe <HostComputerIPAddress> <YourDebugPort> -bkw

Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p

Résumé des options de type de débogage

Option KNDET Description Commande équivalente
b active le débogage de bootmgr bcdedit /bootdebug {bootmgr} on
h active le débogage de l’hyperviseur bcdedit /set hypervisordebug on
k active le débogage du noyau bcdedit /debug on
w active le débogage de winload bcdedit /bootdebug on

Paramètres à spécifier

Si kdnet n’est pas en mesure de déterminer automatiquement les paramètres de bus pour votre transport, spécifiez-les en ligne de commande avec l’option /busparams en utilisant cette syntaxe.

kdnet.exe /busparams [b.d.f] [host] [port] [-[b][h][k][w]]

b.d.f spécifie les paramètres de bus du périphérique à configurer.

Utilisez le Gestionnaire de périphériques sur l’ordinateur cible pour déterminer les numéros de bus PCI, de périphérique et de fonction de l’adaptateur que vous souhaitez utiliser pour le débogage. Pour les paramètres de bus, entrez b.d.fb, d et f sont le numéro de bus, le numéro de périphérique et le numéro de fonction de l’adaptateur. Ces valeurs sont affichées dans le Gestionnaire de périphériques sous Emplacement dans l’onglet Général.

Par exemple :

C:\>kdnet.exe /busparams 0.29.7 <HostComputerIPAddress> <YourDebugPort> -bkw

Voir aussi