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