.printf

.printf 令牌的行为类似于 C 中的 printf 语句。

.printf [/D] [Option] "FormatString" [, Argument , ...] 

语法元素

/D
指定格式字符串包含调试器标记语言(DML)。

选择
(仅限 WinDbg)指定 WinDbg 应将 FormatString 解释为的文本消息类型。 WinDbg 为每种类型的调试器命令窗口消息分配背景和文本颜色;选择这些选项中的一个会使消息以适当的颜色显示。 默认情况是将文本显示为普通级别的消息。

以下是可用的选项。

选项 消息类型 “选项”对话框中的颜色标题

/od

调试对象

调试对象级别命令窗口

/oD

调试对象提示

调试对象提示级别命令窗口

/oe

error

错误级别命令窗口

/on

normal

普通级别命令窗口

/op

prompt

提示级别命令窗口

/oP

提示注册

提示注册级别命令窗口

/os

symbols

符号消息级别命令窗口

/ov

verbose

详细级别命令窗口

/ow

warning

警告级别命令窗口

FormatString
指定格式字符串,如 printf 中所示。 一般情况下,转换字符的工作原理与 C 完全相同。对于浮点转换字符,除非使用l 修饰符,否则 64 位参数将解释为 32 位浮点数。

可以添加“I64”修饰符来指示一个值应该被解释为 64 位。 例如,“%I64x”可用于打印 64 位十六进制数字。

支持 %p 转换字符,但它表示目标虚拟地址空间中的指针。 不得有任何修饰符,并且使用调试器的内部地址格式。 除了标准 printf 样式格式说明符之外,还支持以下其他转换字符。

字符 参数类型 参数 打印的文本

%p

ULONG64

目标虚拟地址空间中的指针。

指针的值。

%N

DWORD_PTR(32 位或 64 位,具体取决于主机的体系结构)

主机虚拟地址空间中的指针。

指针的值。 (这相当于标准 C %p 字符。)

%ma

ULONG64

目标虚拟地址空间中以 NULL 结尾的 ASCII 字符串的地址。

指定的字符串。

%mu

ULONG64

目标虚拟地址空间中以 NULL 结尾的 Unicode 字符串的地址。

指定的字符串。

%msa

ULONG64

目标虚拟地址空间中 ANSI_STRING 结构的地址。

指定的字符串。

%msu

ULONG64

目标虚拟地址空间中 UNICODE_STRING 结构的地址。

指定的字符串。

%y

ULONG64

目标虚拟地址空间中调试器符号的地址。

一个字符串,包含指定符号的名称(以及位移,如果有的话)。

%ly

ULONG64

目标虚拟地址空间中调试器符号的地址。

一个字符串,包含指定符号的名称(以及位移,如果有的话),以及任何可用的源行信息。

参数
指定格式字符串的参数,如 printf 中所示。 指定的参数数应与 FormatString 中的转换字符数匹配。 每个参数都是由默认表达式计算器(MASM 或 C++)计算的表达式。 有关详细信息,请参阅数值表达式语法

其他信息

有关其他控制流令牌及其在调试器命令程序中的使用的信息,请参阅使用调试器命令程序

注解

默认情况下,可以使用 Options 参数选择的颜色设置都设置为白色背景上的黑色文本。 若要充分利用这些选项,必须先使用“视图 | 选项”,打开“选项”对话框,并更改“调试器命令”窗口消息的颜色设置。

以下示例演示了如何在格式字符串中包含 DML 标记。

.printf /D "Click <link cmd=\".chain /D\">here</link> to see extensions DLLs."

命令浏览器窗口中 DML 链接的屏幕截图。

上图中显示的输出有一个链接,可以单击该链接来执行 <link> 标记中指定的命令。 下图显示了单击该链接的结果。

命令浏览器窗口中 DML 输出的屏幕截图。

有关 DML 标记的信息,请参阅适用于 Windows 的调试工具的安装文件夹中的 dml.doc。