.printf

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

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

语法元素

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

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

可以使用以下选项。

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

/od

debuggee

Debuggee 级别命令窗口

/Od

debuggee 提示符

“调试”提示级别命令窗口

/Oe

error

错误级别命令窗口

/on

一般

“正常级别”命令窗口

/op

prompt

“提示级别”命令窗口

/oP

提示寄存器

“提示注册级别”命令窗口

/os

symbols

符号消息级别命令窗口

/Ov

verbose

详细级别命令窗口

/ow

warning

警告级别命令窗口

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

可以添加“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。