Debugging Tools for Windows |
.pcmd 命令使得调试器不管任何时候目标停止时都执行一个命令,并且在调试器命令窗口中显示寄存器或目标状态信息的提示。
.pcmd -c
.pcmd
模式 | 用户模式、内核模式 |
目标 | 活动目标、崩溃转储 |
平台 | 所有 |
如果不带参数使用.pcmd 则显示当前的提示命令。
使用.pcmd –s设置提示命令时,指定的CommandString 会在目标停止执行时执行 (例如g、 p、或 t 命令结束时)。CommandString 命令在使用非执行命令时不会被执行,除非该命令会显示寄存器或者目标状态信息。
下面的例子中,第一次使用.pcmd 设置了和提示符一起出现的固定字符串。第二次使用.pcmd 使得每次出现提示符时显示目标的当前进程ID和线程ID。该提示在使用.ttime 命令之后不会出现,因为该命令不会造成执行。
No per-prompt command
0:000> .pcmd -s ".echo Execution is done."
Per-prompt command is '.echo Execution is done.'
0:000> t
Prymes!isPrime+0xd0:
004016c0 837dc400 cmp dword ptr [ebp-0x3c],0x0 ss:0023:0012fe70=00000002
Execution is done.
0:000> t
Prymes!isPrime+0xd4:
004016c4 7507 jnz Prymes!isPrime+0xdd (004016cd)
[br=1]
Execution is done.
0:000> .ttime
Created: Thu Aug 21 13:18:59 2003
Kernel: 0 days 0:00:00.031
User: 0 days 0:00:00.000
0:000> .pcmd -s "r $tpid, $tid"
Per-prompt command is 'r $tpid, $tid'
0:000> t
Prymes!isPrime+0xdd:
004016cd ebc0 jmp Prymes!isPrime+0x9f (0040168f)
$tpid=0000080c $tid=00000514
0:000> t
Prymes!isPrime+0x9f:
0040168f 8b55fc mov edx,[ebp-0x4] ss:0023:0012fea8=00000005
$tpid=0000080c $tid=00000514
关于调试器命令窗口提示的更多信息,查看使用调试器命令。