Ricerca per categorie abilitare il debug senza avviare una sessione di traccia ETW?
Per eseguire il debug dei problemi senza avviare una sessione di traccia ETW, aggiungere una definizione di macro WPP_DEBUG al codice sorgente.
Ecco un esempio per il driver di esempio wdK Tracedrv.sys:
#define WPP_DEBUG(b) DbgPrint b, DbgPrint("\n")
La maggior parte dei formati e degli argomenti può essere usata con WPP_DEBUG. Tuttavia, non è possibile usare specifiche di formato estese, ad esempio %! HEXDUMP!% con questa macro.
Vedere anche Ricerca per categorie inviare messaggi di traccia a un debugger in modalità utente?.
Quando si usa il debugger del kernel
Se si usa il debugger del kernel, impostare i valori di livello e flag per la struttura di controllo WPP.
Individuare l'indirizzo della struttura di controllo WPP come indicato di seguito:
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
Impostare il valore per il livello su 5 e per i flag su 0xf, come indicato di seguito:
kd>eb 9fbf305d 5 // setting the level value to 5
kd>ed 9fbf3060 0xf // setting the flag value to 0xf
(Windows Vista e versioni successive di Windows) Abilitare la maschera di filtro per ricevere i messaggi come indicato di seguito:
kd>ed nt!Kd_DEFAULT_Mask 0xff