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 explique comment configurer automatiquement le débogage réseau à l’aide de l’outil de configurationkdnet.exe .

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

Déterminer l’adresse IP de l’ordinateur hôte

  1. Vérifiez que les PC cibles et hôtes sont connectés à un hub réseau ou à un commutateur à l’aide d’un câble réseau approprié.

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

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

...

Ethernet adapter Ethernet:
...

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

  1. Notez l’adresse IPv4 de la carte réseau que vous envisagez d’utiliser pour le débogage.

Configurer les ordinateurs hôtes et cibles

Utilisez l’utilitaire kdnet.exe pour configurer automatiquement les paramètres du débogueur sur le PC cible en procédant comme suit.

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

  2. Recherchez les fichierskdnet.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 consiste à exécuter la même « bitness » des outils sur l’hôte que la cible est en cours d’exécution. 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, consultez Choix des 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 afin qu’ils soient disponibles sur l’ordinateur cible.

  4. Sur l’ordinateur cible, créez un répertoire C :\KDNET et copiez les fichierskdnet.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é Windows telles que BitLocker et le démarrage sécurisé sur le PC de test. Réactivez ces fonctionnalités de sécurité une fois le test terminé et gérez correctement le PC de test lorsque les fonctionnalités de sécurité sont désactivées.

  5. Sur l’ordinateur cible, ouvrez une invite de commandes en tant qu’administrateur. Entrez cette commande pour vérifier que l’ordinateur cible dispose d’une carte réseau prise 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 la carte réseau sur la cible est prise 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 .txtbloc-notes .

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

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

Vous pouvez également démarrer une session WinDbg en ouvrant une invite de commandes 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 bloc-notes .txt fichier précédemment.

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

Le paramètre facultatif -d illustré dans l’exemple active l’introduction anticipée. Pour plus d’informations, consultez Options de ligne de commande WinDbg.

Si vous êtes invité à autoriser WinDbg à accéder au port via le pare-feu, autorisez WinDbg à accéder au port pour les trois types de réseau différents.

Capture d’écran de Sécurité Windows Alerte avec des sélections permettant d’autoriser l’accès aux trois types de réseau.

À 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’emplacement « En attente de reconnexion... » étape, redémarrez l’ordinateur cible. Une façon de redémarrer le PC consiste à utiliser cette commande à partir de l’invite de commandes d’un administrateur.

shutdown -r -t 0 

Une fois le PC cible redémarré, le débogueur doit se connecter automatiquement.

Conseils de dépannage

Le débogage d’applications doit être autorisé via un pare-feu

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

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

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

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

    • (WinDbg (Classique)) Dans la liste des applications, recherchez Débogueur symbolique de l’interface graphique graphique Windows et Débogueur de noyau Windows.

  2. Utilisez les cases à cocher pour autoriser ces deux applications à passer par les trois types de réseau 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 Panneau de configuration configuration de pare-feu affichant des applications débogueur symbolique de l’interface graphique graphique Windows et du débogueur de noyau Windows avec les trois types de réseau activés.

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

Choix d’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 50000 est déjà utilisé ou est bloqué.

Vous pouvez choisir n’importe quel numéro de port compris entre 49152 et 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 en cours d’exécution sur l’ordinateur hôte.

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

Cartes réseau prises en charge

Si « Le débogage réseau n’est pas pris en charge sur l’une des cartes réseau de cet ordinateur » s’affiche lorsque vous exécutez kdnet.exe, la carte réseau n’est pas prise 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 Cartes réseau Ethernet prises en charge pour le débogage du noyau réseau dans Windows 10 et 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

À compter de Windows 10 mise à jour 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 bootmgr, kernel et 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

KNDET, option Description Commande set équivalente
b active le débogage 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 winload bcdedit /bootdebug on

Spécifier les paramètres de bus

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

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

b.d.f spécifie les paramètres de bus de l’appareil à configurer.

Utilisez Gestionnaire de périphériques sur l’ordinateur cible pour déterminer les numéros de bus, d’appareil et de fonction PCI pour 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 Gestionnaire de périphériques sous Emplacement sous l’onglet Général.

Par exemple :

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

Voir aussi