Partager via


Débogage local en mode noyau

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 Configuration manuelle du débogage Kernel-Mode local d’un ordinateur unique.

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 pas utiliser de commande qui provoque l’arrêt de l’ordinateur cible, même momentanément, car vous ne pouvez pas reprendre l’opération.

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 d’arrêt et de fichier 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 des variantes

  • Commandes de suivi de pile, telles que k et ses 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 mauvaise partie de la mémoire du noyau, car il peut endommager les structures de données et provoque fréquemment l’arrêt de la réponse de l’ordinateur (c’est-à-dire un incident).

Difficultés d’exécution du débogage du noyau local

Le débogage de 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 en entrée et sortie, le processus actif change constamment, et les contextes d'adresse virtuelle ne demeurent 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 du noyau à l’aide de DbgPrint et de 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 réellement le noyau pendant que cet instantané est effectué. (Par conséquent, l’instantané peut ne pas représenter un seul état momentané 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.