Tracefmt 命令

若要使用 Tracefmt,请在命令提示符窗口中键入命令。 以下语法显示 Tracefmt 命令的元素。

若要以可读形式显示跟踪消息,Tracefmt 必须将跟踪消息格式文件中的格式说明应用于跟踪消息。 使用的语法取决于你是否具有跟踪提供程序的 TMF 文件,还是希望 Tracefmt 创建 TMF 文件。

若要提供 TMF 文件或 TMF 文件目录的路径,请执行以下操作:

    tracefmt [EtlFile | -rt SessionName][-tmf TMFFile | -p TMFPath ] [Options]

若要创建 TMF 文件,请执行以下操作:

    tracefmt [EtlFile | -rt SessionName]-i ImageFiles [-r SymbolPath ] [-p TmfPath ] [Options]

在命令行上显示语法。

    tracefmt -h | /?

参数

EtlFile
指定包含跟踪消息的事件跟踪日志 (.etl) 文件。 输入路径(可选)和文件名。 默认值为 c:\logfile.etl。

-rt SessionName
实时。 设置来自指定实时跟踪会话(而不是跟踪 日志)中的跟踪消息的格式。

SessionName 是跟踪会话的名称。 默认值为 NT 内核记录器

-tmf TMFFile
指定跟踪消息格式 (.tmf) 文件的路径(可选)和文件名。 默认值为 Default.tmf,这是 WDK 中包含的文件。

-我 ImageFiles
指示 Tracefmt 查找指定图像文件的 PDB 符号文件,并从 PDB 文件中的格式说明创建 TMF 文件。

ImageFiles 表示跟踪提供程序的一个或多个二进制文件(.exe、.dll或.sys)的路径和文件名。 使用分号(;)分隔图像文件名)。

-r SymbolPaths
指定 -i 中指定的图像文件的专用 PDB 符号文件的位置。

SymbolPath 表示 存储专用符号或符号服务器路径的目录的一个或多个路径。 使用分号(;)分隔路径名称)。 SymbolPaths 中的路径名称可以包含通配符,例如星号 • 表示多个字符和问号(?)来表示单个字符。

如果在 命令中包含 -i ,但省略 -r,Tracepdb 将在 %_NT_SYMBOL_PATH% 环境变量指定的路径中搜索指定映像的 PDB 文件。 如果未设置环境变量,Tracepdb 将在默认符号路径 srv*\\symbols\\symbols\\symbols 中搜索。

-p TMFPath
指定存储 TMF 文件的目录的路径。

在没有 -i 的情况下使用 -p,Tracefmt 将在 -p 指定的路径中搜索现有 TMF 文件。 如果 省略 -p Tracefmt,则查找 %TRACE_FORMAT_SEARCH_PATH% 环境变量的值中的 TMF 文件(如果已设置)。 否则,Tracefmt 会尝试在 Default.tmf 文件中应用格式设置说明。

当 -p 与 -i 一起使用,Tracefmt 会将它创建的 TMF 文件放置在由 -p 指定的目录中。 如果 省略 -p ,则 Tracefmt 会将 TMF 文件放置在由 %TRACE_FORMAT_SEARCH_PATH% 环境变量的值指定的目录中(如果已设置)。 否则,Tracefmt 会将该文件放置在本地目录中。

-h | /?
显示帮助。

-o OutputFile
指定 Tracefmt 输出文件和 Tracefmt 摘要消息文件的备用名称。 默认值为本地目录中的FmfFile.txt(输出文件)和 FmtSum.txt.sum(摘要文件)。

OutputFile 是以 .txt 文件名为扩展名的路径和文件名,如 c:\traces\trace.txt。

如果将此参数与 -displayonly 或 -summaryonly 选项一起使用,则仅影响摘要消息文件。

-csv
Tracefmt 输出文件 的格式设置为逗号分隔的可变长度 (.csv) 文件。 除了标准 跟踪消息前缀外,此格式还会为每个消息添加详细的结构化前缀

此选项会影响输出文件和命令提示符窗口中跟踪消息的显示(如果有)。

-csvheader
向 CSV 文件添加描述性列标题行。 此标头对于解释 Tracefmt 添加到 CSV 文件的结构化前缀特别有用。 默认情况下,Tracefmt CSV 文件没有列标题。

-csvquote
将 CSV 文件中的所有引号(“)双倍。 此功能专为仅在用引号括起来的应用程序显示引号的应用程序而设计。

-显示
在命令提示符窗口中显示跟踪消息,并将其写入输出文件。

-displayonly
仅在命令提示符窗口中显示跟踪消息,并且不创建输出文件。

-nosummary
不创建摘要消息文件

-summaryonly
只创建摘要消息文件。 Tracefmt 不会创建输出文件

-noprefix
省略跟踪消息前缀。 此选项会影响输出文件和 Tracefmt 显示中的跟踪消息。

-雇佣
高分辨率。 显示跟踪消息时间戳中的微秒数和纳秒数。 默认情况下,仅显示毫秒。

当将性能计数器时钟值用于跟踪消息时间戳而不是系统计时器时(例如,使用 Tracelog -UsePerfCounter 参数时),请使用此选项。 有关 Tracelog 命令的信息,请参阅 Tracelog 命令语法

-seq
显示跟踪消息前缀中的本地或全局序列号。 如果未在消息中记录序列号,则字段未初始化,或者用零或“f”填充。

-ods
将格式化的跟踪消息发送到调试器以显示。

-gmt
显示格林威治平均时间(GMT)中每个跟踪消息上的时间戳。

此选项仅影响 Tracefmt 输出文件。 它不会转换事件跟踪日志 (.etl) 文件中的时间戳。 提交 Tracefmt 命令时,将显示跟踪日志的时区。

-utc
以协调世界时(UTC)显示每个跟踪消息上的时间戳。 UTC 几乎与 GMT 相同,但它表示午夜为零。

此选项仅影响 Tracefmt 输出文件。 它不会转换事件跟踪日志 (.etl) 文件中的时间戳。 提交 Tracefmt 命令时,将显示跟踪日志文件的时区。

-跟踪
在跟踪操作发生时显示这些操作。 当格式不正确或 Tracefmt 报告错误或异常时,此信息非常有用。

跟踪显示可能非常广泛。 请考虑将 Tracefmt 输出重定向到文本文件以供以后检查。

-v
“详细”: 在 Tracefmt 处理每个跟踪消息块或缓冲区时,在命令提示符窗口中显示详细信息。 如果怀疑文件损坏或不一致,请使用此选项。

备注

查找 TMF 文件

如果省略 -i 参数,Tracefmt 使用以下方法查找 TMF 文件。 这些方法按 Tracefmt 使用它们的顺序列出。

  • -tmf 参数。

  • -p 参数。

  • %TRACE_FORMAT_SEARCH_PATH% 环境变量。

  • Default.tmf,WDK 中包含的文件。

如果 Tracefmt 找不到 TMF 文件,或者 TMF 文件不包含跟踪消息的格式信息,则 Tracefmt 无法显示消息。 而是写入以下错误消息来代替跟踪消息

No Format Information found.

引发异常

如果 Tracefmt 无法设置跟踪消息参数的格式,则会引发异常并显示如下消息:

*****FormatMessage Header(Header) of EventTrace, parameter 23 raised an exception*****

如果看到类似的异常,请查看源代码中的消息定义,并特别注意任何用户指定的变量类型。 有关详细信息,请参阅 DoTraceMessage

具有非 GUID 文件名的 TMF 文件

如果 TMF 文件名不是 消息 GUID,则必须使用 -tmf 参数标识文件并输入文件的完全限定路径。

设置 NT 内核记录器跟踪消息的格式

若要设置来自 NT 内核记录器跟踪会话或全局记录器跟踪会话的消息的格式,请使用 -tmf 参数指定 system.tmf 文件(WDK 中包含的跟踪消息格式文件)。

设置来自实时跟踪会话的跟踪消息的格式

使用 -rt (实时)参数时,Tracefmt 会显示一条消息,确认它处于实时模式,然后等待来自指定跟踪提供程序的跟踪消息。 在跟踪会话停止之前,它不会返回到命令提示符。

设置 QPC 时间戳的格式

Tracefmt 不会正确设置系统性能计数器时钟(QueryPerformanceCounter)的值的格式。 如果使用此高分辨率时间,请使用 Windows 中包含的工具 Tracerpt 设置跟踪消息的格式。 有关详细信息,请参阅 Tracelog 命令语法 -UsePerfCounter 参数的说明

序列外跟踪消息

如果在运行 Windows XP 的计算机上查看跟踪消息文件,显示可能会显示不按顺序显示的跟踪消息。 若要更正此问题,可以在启动跟踪会话并使用 Tracefmt 查看跟踪时使用序列号选项。 然后,可以使用 Traceview 查看跟踪,并根据序列号进行排序。 还可以在运行 Windows Server 2003 或更高版本的 Windows 计算机上查看跟踪。