Debugging Tools for Windows

f, fp (Fill Memory)

ffp命令使用一个重复的模板来填充指定内存。

注意该命令不要和~F (Freeze Thread)命令混淆。

语法

f Range Pattern 
fp [MemoryType] PhysicalRange Pattern 

参数

Range
指定要填充的虚拟内存区域。该语法的详细信息,查看地址和地址区域语法
PhysicalRange
(仅内核模式) 指定要填充的物理内存区域。除了不能指定符号名之外,PhysicalRange 的语法和虚拟内存区域一样。
MemoryType
(仅内核模式) 指定物理内存的种类,可以是下面这些之一:
[c]
缓存的内存(Cached memory)。
[uc]
非缓存的内存(Uncached memory)。
[wc]
写聚合内存(Write-combined memory)。

Pattern
指定用于填充内存的一个或多个字节值。

环境

模式 f: 用户模式、内核模式
fp: 仅内核模式
目标 活动目标、崩溃转储
平台 所有

注释

该命令使用指定的pattern 重复尽可能多次来填充range 指定的内存区域。

pattern 参数必须输入一个字节序列。可以输入数字或ASCII字符。

数字值会以当前基数(16、10或者8)进行解析。使用n (Set Number Base)命令来改变默认基数。默认基数可以通过指定0x(16进制)、0n (10进制)、0t (8进制)或0y (2进制)前缀来覆盖。

注意 使用C++ 表达式时默认基数的行为有所不同。查看表达式求值获取详细信息。

如果使用ASCII字符,每个字符都需要用单引号括起来。不能使用C风格的转义字符(如 '\0' 或'\n')。

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

如果pattern 比指定的范围包含的字节数多,则调试器忽略多余的值。

这里有一些例子。假设当前基数为16,下面的命令将从0012FF40 到0012FF5F 的内存用模板"ABC"重复数次来填充:

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

下面的命令有相同作用:

0:000> f 0012ff40 L20 41 42 43

下面的例子说明如何与fp命令一起使用不同的物理内存种类cucwc(内核模式):

?: kd> fp c 0012ff40 L20 'A' 'B' 'C'

?: kd> fp uc 0012ff40 L20 'A' 'B' 'C'

?: kd> fp wc 0012ff40 L20 'A' 'B' 'C'

附加信息

内存操作的概述和内存相关命令,查看读写内存

Build machine: CAPEBUILD