.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
- 关闭forcedecodeptes 和forcedecodeuser
选项(这是默认设置。)
- flushall
- 删除整个虚拟内存缓存。
- flushu
- 在缓存中删除所有有错误的区域的条目,以及用户模式条目。
- flush Address
- 删除从Address开始的4096字节缓存块。
环境
注释
如果.cache不带任何参数,则显示当前缓存大小、状态和选项。
.cache forcedecodeuser 或.cache forcedecodeptes
选项仅持续到目标机还中断在调试器中时。如果对目标进行单步或者执行,则noforcedecodeptes
状态又会开始起作用。这可以避免调试器妨碍执行或重起。
Build machine: CAPEBUILD