Envoi de la sortie au débogueur
Le code en mode utilisateur et en mode noyau utilise des routines différentes pour envoyer la sortie au débogueur.
routines de sortie User-Mode
La routine OutputDebugString envoie une chaîne terminée par null au débogueur du processus appelant. Dans un pilote en mode utilisateur, OutputDebugString affiche la chaîne dans la fenêtre Commande du débogueur. Si un débogueur n’est pas en cours d’exécution, cette routine n’a aucun effet. OutputDebugString ne prend pas en charge les arguments variables d’une chaîne au format printf .
Le prototype de cette routine est le suivant :
VOID OutputDebugString(
LPCTSTR lpOutputString
);
Pour obtenir la documentation complète de cette routine, consultez Communication avec le débogueur.
routines de sortie Kernel-Mode
La routine DbgPrint affiche la sortie dans la fenêtre du débogueur. Cette routine prend en charge les paramètres de format printf de base. Seuls les pilotes en mode noyau peuvent appeler DbgPrint.
La routine DbgPrintEx est similaire à DbgPrint, mais elle vous permet de « baliser » vos messages. Lorsque vous exécutez le débogueur, vous pouvez autoriser uniquement l’envoi de messages avec certaines balises. Cela vous permet d’afficher uniquement les messages qui vous intéressent. Pour plus d’informations, consultez Lecture et filtrage des messages de débogage.
Les macros KdPrint et KdPrintEx sont identiques à DbgPrint et DbgPrintEx, respectivement, lorsqu’elles sont compilées dans l’environnement de génération vérifié. Lorsqu’elles sont compilées dans l’environnement de build gratuit, elles n’ont aucun effet.