.cache (Set Cache Size)

The .cache command sets the size of the cache used to hold data obtained from the target. Also sets a number of cache and memory options.

.cache Size 
.cache Option 
.cache 

Parameters

Size
The size of the kernel debugging cache, in kilobytes. If Size is zero, the cache is disabled. The command output displays the cache size in bytes. (The default size is 1000 KB.)

Option
Can be any one of the following options:

hold
Automatic cache flushing is disabled.

unhold
Turns off the hold option. (This is the default setting.)

decodeptes
All transition page table entries (PTEs) will be implicitly decoded. (This is the default setting.)

nodecodeptes
Turns off the decodeptes option.

forcedecodeptes
All virtual addresses will be translated into physical addresses before access. This option also causes the cache to be disabled. Unless you are concerned with kernel-mode memory, it is more efficient to use forcedecodeuser instead.

forcedecodeuser
All user-mode virtual addresses will be translated into physical addresses before access. This option also causes the cache to be disabled.

Note   You must activate forcedecodeuser (or forcedecodeptes) before using .thread (Set Register Context), .context (Set User-Mode Address Context), .process (Set Process Context), or !session during live debugging. If you use the /p option with .thread and .process, the forcedecodeuser option is automatically set. In any other case, you will need to use the .cache forcedecodeuser command explicitly.

noforcedecodeptes
Turns off the forcedecodeptes and forcedecodeuser options. (This is the default setting.)

flushall
Deletes the entire virtual memory cache.

flushu
Deletes all entries of ranges with errors from the cache, as well as all user-mode entries.

flush Address
Deletes a 4096-byte block of the cache, beginning at Address.

Environment

Modes

kernel mode only

Targets

live debugging only

Platforms

all

Remarks

If .cache is used with no arguments, the current cache size, status, and options are displayed.

The .cache forcedecodeuser or .cache forcedecodeptes option will only last as long as the debugger remains broken into the target computer. If any stepping or execution of the target takes place, the noforcedecodeptes state will again take effect. This prevents the debugger from interfering with execution or a reboot in an unproductive manner.