Debugging Tools for Windows

.cache (Set Cache Size)

.cache 命令用来设置保存从目标接收到的数据的缓冲区大小。也可以用来设置一些缓冲区和内存选项。

语法

.cache Size 
.cache Option 
.cache 

参数

Size
内核调试的缓冲区大小,以KB为单位。如果Size是0,则禁用缓存。该命令的输出以字节为单位显示缓存大小。 (默认大小是1000 KB。)
Option
可以是下面的选项之一:
hold
禁用自动缓存刷新。
unhold
关闭hold 选项(这是默认设置。)
decodeptes
所有过渡页表入口(transition page table entries (PTEs))都会被暗中解码。 (这是默认设置。)
nodecodeptes
关闭decodeptes 选项
forcedecodeptes
所有虚拟地址在访问前都要先转换为物理地址。该选项也会造成缓存被禁用。除非只关心内核模式内存,否则使用forcedecodeuser要更有用些。
forcedecodeuser
所有的用户模式虚拟地址在访问前都被转换为物理地址。该选项会造成缓存被禁用。

注意,在进行活动调试时,使用.thread (Set Register Context).context (Set User-Mode Address Context).process (Set Process Context)!session之前,必须先激活forcedecodeuser (或者forcedecodeptes)。如果.thread .process 带有/p选项,则会自动设置forcedecodeuser 选项。在很多其它情况下,需要显式使用.cache forcedecodeuser命令。

noforcedecodeptes
关闭forcedecodeptesforcedecodeuser 选项(这是默认设置。)
flushall
删除整个虚拟内存缓存。
flushu
在缓存中删除所有有错误的区域的条目,以及用户模式条目。
flush Address
删除从Address开始的4096字节缓存块。

环境

模式 仅内核模式
目标 仅活动调试
平台 所有

注释

如果.cache不带任何参数,则显示当前缓存大小、状态和选项。

.cache forcedecodeuser.cache forcedecodeptes 选项仅持续到目标机还中断在调试器中时。如果对目标进行单步或者执行,则noforcedecodeptes 状态又会开始起作用。这可以避免调试器妨碍执行或重起。

Build machine: CAPEBUILD