跟踪消息前缀

Tracefmt 向每个跟踪消息添加前缀,该前缀由 存储在事件跟踪日志 (.etl) 文件 中的数据和 跟踪消息格式 (.tmf) 文件组成。

默认情况下,Tracefmt 包括特定的数据元素,但用户可以通过更改 %TRACE_FORMAT_PREFIX% 环境变量(一个指定与 FormatMessage 兼容的消息定义的字符串)来添加和删除元素。

默认跟踪消息前缀的格式如下所示:

[%9!d!]%8!04X!.%3!04X!::%4!s! [%1!s!]

这将生成以下前缀:

[CPUNumber]ProcessID.ThreadID :: SystemTime [MessageGUIDFriendlyName]

每个 %n 变量表示下表中所述的参数。

前缀变量标识符 变量类型 说明

%1

字符串

跟踪 消息的消息 GUID 的友好名称。 默认情况下,消息 GUID 的友好名称是在其中生成 跟踪提供程序 的目录的名称。

若要更改消息 GUID 的友好名称,请将 -p 参数与 Tracewpp 或 RUN_WPP 宏一起使用。 有关详细信息,请参阅 Run_WPP 选项。

%2

字符串

源文件和行号。

此变量表示跟踪消息的友好名称。 默认情况下,跟踪消息的友好名称是源文件的名称和生成跟踪消息的代码的行号。

%3

ULONG

线程 ID。

标识生成跟踪消息的线程。

%4

字符串

生成跟踪消息的时间的时间戳。

%5

字符串

内核时间。

显示生成跟踪消息时内核模式指令的已用执行时间(以 CPU 刻度为单位)。

%6

字符串

用户时间。

显示生成跟踪消息时用户模式指令的已用执行时间(以 CPU 刻度为单位)。

%7

LONG

序列号。

显示跟踪消息的本地或全局序列号。 本地序列号(仅对此跟踪会话是唯一的)是默认值。

%8

ULONG

进程 ID。

标识生成跟踪消息的进程。

%9

ULONG

CPU 编号。

标识生成跟踪消息的 CPU。

%!FUNC!

字符串

函数名称。

显示生成跟踪消息的函数的名称。

%!标志!

字符串

显示启用跟踪消息的跟踪 标志 的名称。

(由于 DoTraceMessage 宏反转标志和级别参数,DoTraceMessage 生成的消息在此字段中显示 跟踪级别的 值。)

%!水平!

字符串

显示启用跟踪消息的跟踪 级别的 值。

(由于 DoTraceMessage 宏反转标志和级别参数,DoTraceMessage 生成的消息在此字段中显示 跟踪标志 的名称。)

%!COMPNAME!

字符串

组件名称。

显示生成跟踪消息的提供程序的组件的名称。 仅当在跟踪代码中指定组件名称时,才会显示该名称。

%!SUBCOMP!

字符串

子组件名称。

显示生成跟踪消息的提供程序的子组件的名称。 仅当在跟踪代码中指定组件名称时,才会显示该名称。

感叹号中的符号是一个转换字符,用于指定变量的格式设置和精度。 例如,%8!04X! 指定表示为四位无符号十六进制数的进程 ID。 必须包含这些转换字符。

若要更改跟踪消息前缀的元素、顺序或格式,请使用 %TRACE_FORMAT_PREFIX% 环境变量。 有关示例,请参阅 示例 7:自定义跟踪消息前缀

有关 TMF 文件中的内容示例,请参阅设置 tracedrv 示例中的跟踪消息的格式。

此外, -csv 参数还会在标准 Tracefmt 前缀之前向每个跟踪消息添加一个不可配置的详细前缀。 有关 CSV 前缀中字段的说明,请使用 -csvheader 参数。