.cache(设置缓存大小)
.cache 命令设置用于保存从目标获取的数据的缓存的大小。 此外,还设置许多缓存和内存选项。
.cache Size
.cache Option
.cache
参数
大小
内核调试缓存的大小(以 KB 为单位)。 如果 Size 为零,则禁用缓存。 命令输出显示缓存大小(以字节为单位)。 (默认大小为 1000 KB。)
选择
可为以下任一选项:
hold
自动缓存刷新已禁用。
unhold
关闭 hold 选项。 (这是默认设置。)
decodeptes
所有转换页表条目 (PTE) 都将隐式解码。 (这是默认设置。)
nodecodeptes
关闭 decodeptes 选项。
forcedecodeptes
访问之前,会将所有虚拟地址转换为物理地址。 此选项还会促使禁用缓存。 除非担心内核模式内存,否则改用 forcedecodeuser 会更高效。
forcedecodeuser
访问之前,会将所有用户模式虚拟地址转换为物理地址。 此选项还会促使禁用缓存。
注意 在实时调试期间使用 .thread(设置寄存器上下文)、.context(设置用户模式地址上下文)、.process(设置进程上下文)或 !session 之前,必须激活 forcedecodeuser(或 forcedecodeptes)。 如果将 /p 选项用于 .thread 和 .process,则会自动设置 forcedecodeuser 选项。 在任何其他情况下,都需要显式使用 .cache forcedecodeuser 命令。
noforcedecodeptes
关闭 forcedecodeptes 和 forcedecodeuser 选项。 (这是默认设置。)
flushall
删除整个虚拟内存缓存。
flushu
删除缓存中出现错误的范围所有条目,以及所有用户模式条目。
flush Address
从 Address 开始,删除缓存的 4096 字节块。
环境
模式 |
仅内核模式 |
目标 |
仅限实时调试 |
平台 |
全部 |
注解
如果 .cache 没有使用任何参数,则会显示当前缓存大小、状态和选项。
仅当调试器仍进入目标计算机,.cache forcedecodeuser 或 .cache forcedecodeptes 选项就会持续存在。 如果步进或执行目标,noforcedecodeptes 状态将再次生效。 这可防止调试器以非生产方式干扰执行或重启。