Using Pseudoregisters

NTSD supports the use and definition of pseudoregisters. Four of these are automatically set to specific debug information:

The pseudoregisters $u0 through $u9 are user-defined and can be used as macros. Pseudoregisters can be used to eliminate typing of long or complex symbol names:

0:000> r $u0=usersrv!NameTooLongToWantToType
0:000> dw $u0+8
 

Here is another example using a pseudoregister to simplify typing of commands:

0:000> r $u5='dd esp 14;g'
0:000> bp Api1 $u5; bp Api2 $u5
 

The preceding expands to

bp Api1 'dd esp 14;g'
 

Note  Recursive definitions such as the following are not supported:

0:000> r $u0=abc + $u1
0:000> r $u1=def + $u0
 

You can predefine pseudoregisters in your TOOLS.INI file by adding $u fields to your [NTSD] entry:

[NTSD]
$u0:_ntdll!_RtlRaiseException
$u1:"dd esp 14;g"
$u9:$u0 + $u7