.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."
上图中显示的输出包含一个链接,可单击该链接来执行 标记中指定的 <link>
命令。 下图显示了单击链接的结果。
有关 DML 标记的信息,请参阅 Windows 调试工具安装文件夹中的 dml.doc。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈