f、fp(填充内存)

ffp 命令使用重复模式填充指定的内存范围。

不应将这些命令与 ~F(冻结线程) 命令混淆。

f Range Pattern 
fp [MemoryType] PhysicalRange Pattern

参数

范围
指定要填充的虚拟内存中的范围。 有关语法详细信息,请参阅地址和地址范围语法

PhysicalRange
(仅限内核模式)指定要填充的物理内存中的范围。 PhysicalRange语法与虚拟内存范围的语法相同,只不过不允许任何符号名称。

MemoryType
(仅限内核模式)指定物理内存的类型,可以是下列类型之一:

[c]
缓存内存。

[uc]
未缓存的内存。

[wc]
写入组合内存。

模式
指定要填充内存的一个或多个字节值。

环境

模式

f: 用户模式,内核模式 fp: 仅内核模式

目标

实时、崩溃转储

平台

全部

其他信息

有关内存操作的概述和其他与内存相关命令的说明,请参阅读取和写入内存

注解

此命令用指定的模式填充由区域指定的内存区域,并根据需要重复多次。

模式参数必须是作为一系列字节的输入。 这些字符可以输入为数字或 ASCII 字符。

数值将解释为当前弧度中的数字(16、10 或 8)。 若要更改默认基数,请使用 n(设置基数)命令。 可以通过指定 0x 前缀(十六进制)、0n 前缀(十进制)、0t 前缀(八进制)或 0y 前缀(二进制)来重写默认弧度。

请注意 ,在使用C++表达式时,默认基数的行为方式不同。 有关详细信息,请参阅 “计算表达式 ”主题。

如果使用 ASCII 字符,则必须将每个字符括在单引号中。 不能使用 C 样式转义字符(如“\0”或“\n”)。

如果指定了多个字节,则必须用空格分隔它们。

如果 模式 的值超过区域中的字节数,调试器将忽略额外的值。

下面是一些示例。 假设当前弧度为 16,以下命令将使用模式“ABC”填充内存位置 0012FF40 到 0012FF5F,多次重复:

0:000> f 0012ff40 L20 'A' 'B' 'C'

以下命令的效果完全相同:

0:000> f 0012ff40 L20 41 42 43

以下示例演示如何在内核模式下将物理内存类型(c、uc 和 wc)与 fp 命令配合使用:

kd> fp [c] 0012ff40 L20 'A' 'B' 'C'
kd> fp [uc] 0012ff40 L20 'A' 'B' 'C'
kd> fp [wc] 0012ff40 L20 'A' 'B' 'C'