Comment faire activer le débogage sans démarrer une session de trace ETW ?
Pour déboguer les problèmes sans démarrer une session de suivi ETW, ajoutez une définition de macro WPP_DEBUG à votre code source.
Voici un exemple pour l’exemple de pilote WDK Tracedrv.sys :
#define WPP_DEBUG(b) DbgPrint b, DbgPrint("\n")
La plupart des formats et arguments peuvent être utilisés avec WPP_DEBUG. Toutefois, vous ne pouvez pas utiliser de spécifications de format étendu telles que % ! HEXDUMP !% avec cette macro.
Consultez également Comment faire envoyer des messages de trace à un débogueur en mode utilisateur ?.
Lors de l’utilisation du débogueur de noyau
Si vous utilisez le débogueur de noyau, définissez les valeurs de niveau et d’indicateur pour la structure de contrôle WPP.
Recherchez l’adresse de la structure de contrôle WPP comme suit :
kd> x tracedrv!WPP_MAIN_CB // tracedrv is the WPP instrumented driver 9fbf3040 tracedrv!WPP_MAIN_CB = union WPP_PROJECT_CONTROL_BLOCK [1] kd>dt WPP_TRACE_CONTROL_BLOCK 9fbf3040 +0x000 Callback : 0x9fbf127c tracedrv!WppTraceCallback+0 +0x004 ControlGuid : 0x9fbf206c _GUID {d58c126f-b309-11d1-969e-0000f875a5bc} +0x008 Next : (null) +0x010 Logger : 0 +0x018 RegistryPath : (null) +0x01c FlagsLen : 0x1 '' +0x01d Level : 0x0 '' <--- Set the Level +0x01e Reserved : 0 +0x020 Flags : [1] 0x0 <--- Set the Flag
Définissez la valeur du niveau sur 5 et pour que les indicateurs 0xf, comme suit :
kd>eb 9fbf305d 5 // setting the level value to 5
kd>ed 9fbf3060 0xf // setting the flag value to 0xf
(Windows Vista et versions ultérieures de Windows) Activez le masque de filtre pour recevoir les messages comme suit :
kd>ed nt!Kd_DEFAULT_Mask 0xff