Cómo habilitar la depuración sin iniciar una sesión de seguimiento de ETW?
Para depurar problemas sin iniciar una sesión de seguimiento etw, agregue una definición de macro WPP_DEBUG al código fuente.
Este es un ejemplo para el controlador de ejemplo Tracedrv.sys WDK:
#define WPP_DEBUG(b) DbgPrint b, DbgPrint("\n")
La mayoría de los formatos y argumentos se pueden usar con WPP_DEBUG. Sin embargo, no se pueden usar especificaciones de formato extendidas como %! HEXDUMP!% con esta macro.
Consulte también Cómo enviar mensajes de seguimiento a un depurador en modo de usuario?
Al usar el depurador de kernel
Si usa el depurador de kernel, establezca los valores de nivel y marca para la estructura de control de WPP.
Busque la dirección de la estructura de control WPP de la siguiente manera:
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
Establezca el valor del nivel en 5 y para las marcas en 0xf, como se indica a continuación:
kd>eb 9fbf305d 5 // setting the level value to 5
kd>ed 9fbf3060 0xf // setting the flag value to 0xf
(Windows Vista y versiones posteriores de Windows) Habilite la máscara de filtro para recibir los mensajes de la siguiente manera:
kd>ed nt!Kd_DEFAULT_Mask 0xff