Compartir a través de


¿Cómo se añade un prefijo y sufijo a un mensaje de seguimiento?

Puede usar un bloque de configuración del preprocesador de WPP para agregar datos a los mensajes de seguimiento.

El bloque de configuración de WPP se define mediante las instrucciones config y end_wpp begin_wpp que se colocan en el código fuente.

configuración de begin_wpp

...

bloque de configuración

...

end_wpp

Si coloca datos de configuración en un archivo de encabezado, especifique el nombre del archivo de encabezado en las propiedades del proyecto (para el seguimiento de WPP). En Opciones de archivo en la página de propiedades, especifique el archivo de configuración de examen. Consulte Preprocesador de WPP para obtener más información.

Sintaxis del bloque de configuración

USEPREFIX (Function_Name, "Format string");
Define un prefijo de cadena de formato que se usará cuando se registra el evento. El primer parámetro es el nombre de la función a la que se aplica este prefijo. El segundo parámetro es la cadena de formato que se va a usar. Para usar el valor predeterminado, especifique %! STDPREFIX!. El prefijo de mensaje de seguimiento predeterminado especifica el número de CPU, el identificador de proceso, el identificador de subproceso, la marca de tiempo en formato hora universal coordinada (UTC) y el nombre descriptivo del GUID de control.

//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");

FUNC Function_Name{args}(EXP);
Define el nombre y la firma de la función de seguimiento. Las llaves { } se usan para definir valores establecidos para la función. En el ejemplo siguiente, la función toma un argumento y no hay ninguna cadena de formato, y LEVEL se establece en ERROR.

//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);

USESUFFIX (Function_Name, "Format string");
Define el sufijo de cadena de formato que se va a usar cuando se registra el evento. El primer parámetro es el nombre de la función a la que se aplica este sufijo. El segundo parámetro es la cadena de formato que se va a usar. Puede usar nombres de variable en el código.

//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);

Bloque de configuración de ejemplo

En el ejemplo siguiente se define una macro de seguimiento que usa el prefijo y el sufijo de cadena de formato. Si va a definir una macro de seguimiento, también debe definir macros para seleccionar el registrador y comprobar si se debe registrar el evento.

//MACRO: TRACE_RETURN
//
//begin_wpp config
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
//end_wpp

//
// The next two macros are for checking if the event should be logged, and for
// choosing the logger handle to use when calling the ETW trace API
//
#define WPP_LEVEL_EXP_ENABLED(LEVEL, HR) WPP_FLAG_ENABLED(LEVEL)
#define WPP_LEVEL_EXP_LOGGER(LEVEL, HR) WPP_FLAG_LOGGER(LEVEL)

Resultados de seguimiento de ejemplo

[0]0F78.0460::06/24/2006-15:54:54.880 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)