Débogage en mode noyau en direct en utilisant WinDbg (classique)
Il existe deux façons d’utiliser WinDbg pour lancer une session de débogage en mode noyau en direct.
WinDbg Menu
Lorsque WinDbg est en mode dormant, vous pouvez commencer une session de débogage du noyau en choisissant Le débogage du noyau dans le menu Fichier ou en appuyant sur Ctrl+K. Lorsque la boîte de dialogue Débogage du noyau s’affiche, cliquez sur l’onglet approprié : NET, COM, USB ou Local. Chaque onglet spécifie une méthode de connexion différente.
Invite de commandes
Dans une fenêtre d’invite de commandes, vous pouvez lancer une session de débogage en mode noyau lorsque vous lancez WinDbg. Entrez l’une des commandes suivantes :
windbg [-y SymbolPath] -k net :port=PortNumber,key=Key[,target=TargetIPAddress|TargetMachineName]
windbg [-y SymbolPath] -k usb :targetname=USBString
windbg [-y SymbolPath] -k com :port=ComPort,baud=BaudRate
windbg [-y SymbolPath] -k com :ipport=SerialTcpIpPort,port=SerialIPAddress
windbg [-y SymbolPath] -k com :pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]
windbg [-y SymbolPath] -k com :modem
windbg [-y SymbolPath] -kl
windbg [-y SymbolPath] -k
Pour plus d’informations, consultez Options de ligne de commande WinDbg.
Variables d'environnement
Pour le débogage sur un port COM (serial), vous pouvez utiliser des variables d’environnement pour spécifier les paramètres de connexion.
Utilisez les variables suivantes pour spécifier une connexion série.
set _NT_DEBUG_PORT = ComPort
set _NT_DEBUG_BAUD_RATE = BaudRate
Pour plus d’informations, consultez Variables d’environnement en mode noyau.
Paramètres
SymbolPath
Liste des répertoires où se trouvent les fichiers de symboles. Les répertoires de la liste sont séparés par des points-virgules. Pour plus d’informations, consultez Chemin d’accès aux symboles.
PortNumber
Numéro de port à utiliser pour le débogage réseau. Vous pouvez choisir n’importe quel nombre de 49152 à 65535. Pour plus d’informations, consultez Configuration manuelle d’une connexion réseau.
Clé
Clé de chiffrement à utiliser pour le débogage réseau. Nous vous recommandons d’utiliser une clé générée automatiquement, fournie par bcdedit lorsque vous configurez l’ordinateur cible. Pour plus d’informations, consultez Configuration manuelle d’une connexion réseau.
TargetIPAddress
Adresse IPv4 de l’ordinateur cible.
Lorsque l’adresse IP target= est spécifiée, le débogueur lance une connexion à l’ordinateur cible spécifié, en envoyant un paquet spécial à la cible, ce qui l’amènera à tenter de se connecter à ce débogueur. Le débogueur envoie des paquets à la cible à plusieurs reprises chaque moitié de seconde, en tentant de se connecter. Si la connexion réussit, la cible supprime toute connexion existante et communique uniquement avec cette instance du débogueur. Cela vous permet de prendre le contrôle de la session de débogage loin d’une connexion de débogage existante.
Lorsque la cible est configurée avec une adresse IP hôte et que le débogueur est en cours d’exécution sur l’ordinateur avec l’adresse IP hôte configurée, il n’est pas nécessaire de spécifier le paramètre d’adresse IP target= . Lorsque la cible est configurée avec une adresse IP hôte, elle envoie des paquets OFFER à l’hôte toutes les trois secondes. Les paquets OFFER permettent au débogueur de se connecter à l’hôte lorsqu’aucune adresse IP target= n’est spécifiée.
Pour plus d’informations sur la configuration de l’adresse IP hôte sur la cible, consultez Configuration automatique du débogage du noyau réseau KDNET et Configuration manuelle du débogage du noyau réseau KDNET.
TargetMachineName
Nom de l’ordinateur cible. Pour utiliser le nom de l’ordinateur, le système DNS sur le réseau doit avoir le nom de l’ordinateur associé à l’adresse IP du PC cible.
USBString
Un chaîne de connexion USB. Cela doit correspondre à la chaîne spécifiée avec l’option de démarrage /targetname. Pour plus d’informations, consultez Configuration du débogage en mode noyau USB 3.0 xHCI-DBC (KDUSB).
Comport
Nom du port COM. Cela peut être au format « com2 » ou au format « \\.\com2 », mais ne doit pas simplement être un nombre. Pour plus d’informations, consultez Configuration manuelle d’une connexion série.
BaudRate
Vitesse en bauds. Il peut s’agir de 9600, 19200, 38400, 57600 ou 115200.
SerialTcpIpPort
Port IP TCP cible du port COM série émulé.
SerialIPAddress
Adresse IP TCP cible du port COM série émulé.
VMHost
Lors du débogage d’une machine virtuelle, VMHost spécifie le nom de l’ordinateur physique sur lequel la machine virtuelle est en cours d’exécution. Si la machine virtuelle s’exécute sur le même ordinateur que le débogueur du noyau lui-même, utilisez une seule période (.) pour VMHost. Pour plus d’informations, consultez Configuration d’une connexion à une machine virtuelle.
PipeName
Nom du canal créé par la machine virtuelle pour la connexion de débogage.
resets=0
Spécifie qu’un nombre illimité de paquets de réinitialisation peut être envoyé à la cible lorsque l’hôte et la cible sont synchronisés. Ce paramètre est nécessaire uniquement lors du débogage de certains types de machines virtuelles.
reconnecter
Le débogueur se déconnecte et reconnecte automatiquement le canal en cas d’échec de lecture/écriture. En outre, si le canal nommé est introuvable lorsque le débogueur est démarré, le paramètre de reconnexion l’oblige à attendre qu’un canal de ce nom apparaisse. Ce paramètre est nécessaire uniquement lors du débogage de certains types de machines virtuelles.
-Kl
Provoque le débogage du débogueur en mode noyau local. Pour plus d’informations, consultez Débogage en mode noyau local.
Paramètres de version précédents
Important
Le transport 1394 est disponible pour une utilisation dans Windows 10, version 1607 et versions antérieures. Il n’est pas disponible dans les versions ultérieures de Windows. Vous devez transférer vos projets vers d’autres transports, tels que KDNET à l’aide d’Ethernet. Pour plus d’informations sur ce transport, consultez Configuration automatique du débogage du noyau réseau KDNET.
1394Channel
Numéro de canal 1394. Les numéros de canal valides sont n’importe quel entier compris entre 0 et 62. 1394Channel doit correspondre au nombre utilisé par l’ordinateur cible, mais ne dépend pas du port physique 1394 choisi sur l’adaptateur.
1394Protocol
Protocole de connexion à utiliser pour la connexion au noyau 1394. Cela peut presque toujours être omis, car le débogueur choisit automatiquement le protocole approprié. Si vous souhaitez définir cette valeur manuellement et que l’ordinateur cible exécute Windows XP, 1394Protocol doit être défini sur « canal ». Si l’ordinateur cible exécute Windows Server 2003 ou version ultérieure, 1394Protocol doit être défini sur « instance ». S’il est omis, le débogueur est défini par défaut sur le protocole approprié pour l’ordinateur cible actuel. Cela ne peut être spécifié qu’à l’aide de la ligne de commande ou des variables d’environnement, et non par le biais de l’interface graphique WinDbg.
Exemples
Le fichier batch suivant peut être utilisé pour configurer et démarrer une session de débogage sur une connexion de port COM.
set _NT_SYMBOL_PATH=d:\mysymbols
set _NT_DEBUG_PORT=com1
set _NT_DEBUG_BAUD_RATE=115200
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
windbg -k
Les lignes de commande suivantes peuvent être utilisées pour démarrer WinDbg sans aucune variable d’environnement.
windbg -y d :\mysymbols -k com :port=com2,baud=57600
windbg -y d :\mysymbols -k com :port=\\.\com2,baud=115200
windbg -y d :\mysymbols -k net :port=50000,key=AutoGeneratedKey
windbg -y d :\mysymbols -k net :port=50000,key=AutoGeneratedKey,target=TargetIPAddress