Debugging Tools for Windows

.pcmd (Set Prompt Command)

.pcmd 命令使得调试器不管任何时候目标停止时都执行一个命令,并且在调试器命令窗口中显示寄存器或目标状态信息的提示。

语法

.pcmd -s CommandString 
.pcmd -c 
.pcmd 

参数

-s CommandString
指定一个新的提示命令字符串。当目标停止运行时,调试器立即运行CommandString 命令。如果CommandString 包含空格或分号,必须将它用引号括起来。
-c
删除任何已存在的提示命令字符串。

环境

模式 用户模式、内核模式
目标 活动目标、崩溃转储
平台 所有

注释

如果不带参数使用.pcmd 则显示当前的提示命令。

使用.pcmd –s设置提示命令时,指定的CommandString 会在目标停止执行时执行 (例如gp、或 t 命令结束时)。CommandString 命令在使用非执行命令时不会被执行,除非该命令会显示寄存器或者目标状态信息。

下面的例子中,第一次使用.pcmd 设置了和提示符一起出现的固定字符串。第二次使用.pcmd 使得每次出现提示符时显示目标的当前进程ID和线程ID。该提示在使用.ttime 命令之后不会出现,因为该命令不会造成执行。

0:000> .pcmd
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

附加信息

关于调试器命令窗口提示的更多信息,查看使用调试器命令

Build machine: CAPEBUILD