[WinDbg Command].pcmd
말 그대로 Target 이 Stop 되면 지정된 command 가 자동으로 실행되게 되네요
이 명령의 경우 KD 를 사용하거나 별도의 창을 띄우지 않은 상태에서 디버깅을 할때 유용할 것 같습니다. stop 이 되면 callstack 이나 local 변수의 내용을 보여주게 한다면 편리할것 같습니다.
0:000> .pcmd
No per-prompt command
Execution is done. 이라는 문자열을 출력하게 되는군요
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'
PID, 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