Débogage Kernel-Mode local
Les outils de débogage pour Windows prennent en charge le débogage du noyau local. Il s’agit du débogage en mode noyau sur un seul ordinateur. En d’autres termes, le débogueur s’exécute sur le même ordinateur que celui en cours de débogage.
Configuration du débogage Kernel-Mode local
Pour plus d’informations sur la configuration du débogage en mode noyau local, consultez Configurer manuellement le débogage local Kernel-Mode d’un seul ordinateur.
Démarrage de la session de débogage
Utilisation de WinDbg
Ouvrez WinDbg en tant qu’administrateur. Dans le menu Fichier , choisissez Débogage du noyau. Dans la boîte de dialogue Débogage du noyau, ouvrez l’onglet Local . Sélectionnez OK.
Vous pouvez également démarrer une session avec WinDbg en ouvrant une fenêtre d’invite de commandes en tant qu’administrateur et en entrant la commande suivante :
windbg -kl
Utilisation de KD
Ouvrez une fenêtre d’invite de commandes en tant qu’administrateur, puis entrez la commande suivante :
kd -kl
Commandes non disponibles
Toutes les commandes ne sont pas disponibles dans une session de débogage de noyau local. En règle générale, vous ne pouvez utiliser aucune commande qui provoque l’arrêt de l’ordinateur cible, même momentanément, car vous ne pouvez pas reprendre le fonctionnement.
En particulier, vous ne pouvez pas utiliser les commandes suivantes :
Commandes d’exécution, telles que g (Go),p (Step),t (Trace), wt (Trace and Watch Data),tb (Trace to Next Branch),gh (Go with Exception Handled) et gn (Go with Exception Not Handled)
Commandes de fichier d’arrêt et de vidage, telles que .crash, .dump et .reboot
Commandes de point d’arrêt, telles que bp, bu, ba, bc, bd, be et bl
Inscrire des commandes d’affichage, telles que r et les variantes
Commandes de trace de pile, telles que k et les variantes
Si vous effectuez un débogage de noyau local avec WinDbg, toutes les commandes et boutons de menu équivalents ne sont pas disponibles.
Commandes disponibles
Toutes les commandes d’entrée et de sortie de mémoire sont disponibles. Vous pouvez lire librement à partir de la mémoire utilisateur et de la mémoire du noyau. Vous pouvez également écrire en mémoire. Assurez-vous que vous n’écrivez pas dans la partie incorrecte de la mémoire du noyau, car cela peut endommager les structures de données et provoquer fréquemment l’arrêt de la réponse de l’ordinateur (c’est-à-dire un plantage).
Difficultés d’exécution du débogage du noyau local
Le débogage du noyau local est une opération très délicate. Veillez à ne pas endommager ou bloquer le système.
L’un des aspects les plus difficiles du débogage du noyau local est que l’état de l’ordinateur change constamment. La mémoire est paginée, le processus actif change constamment et les contextes d’adresses virtuelles ne restent pas constants. Toutefois, dans ces conditions, vous pouvez analyser efficacement les éléments qui changent lentement, tels que certains états d’appareil.
Les pilotes en mode noyau et le système d’exploitation Windows envoient fréquemment des messages au débogueur de noyau à l’aide de DbgPrint et des fonctions associées. Ces messages ne sont pas affichés automatiquement pendant le débogage du noyau local. Vous pouvez les afficher à l’aide de l’extension !dbgprint .
LiveKD
L’outil LiveKD simule le débogage du noyau local. Cet outil crée un fichier de vidage « instantané » de la mémoire du noyau, sans arrêter le noyau pendant que cette instantané est effectuée. (Par conséquent, le instantané peut ne pas afficher un seul état instantané de l’ordinateur.)
LiveKD ne fait pas partie du package Outils de débogage pour Windows. Vous pouvez télécharger LiveKd à partir du site Windows Sysinternals.