2009-07-08

Плагин для Windbg

Плагин определяет сколько времени прошло между двумя точками в програме.
Используеться так:
!ct breakpoint1 breakpoint2

Пример на блокноте (notepad.exe):
Правда плагин считает только секунды, и для больших таймаутов не подходит
0:000> u winmain
notepad!WinMain:
005a138d 8bff mov edi,edi
005a138f 55 push ebp
005a1390 8bec mov ebp,esp
005a1392 83ec1c sub esp,1Ch
005a1395 56 push esi
005a1396 57 push edi
005a1397 6a06 push 6
005a1399 33f6 xor esi,esi
0:000> !ct 005a1392 005a1399
0:000> bl
0 e 005a1392 0001 (0001) 0:**** notepad!WinMain+0x5
1 d 005a1399 0001 (0001) 0:**** notepad!WinMain+0xc
0:000> g
...
Breakpoint 0 hit
Debug session time: Wed Jul 8 16:58:41.358 2009 (GMT+3)
System Uptime: 6 days 2:43:43.142
Process Uptime: 0 days 0:00:20.215
Kernel time: 0 days 0:00:00.015
User time: 0 days 0:00:00.000
------------------------------- 0 hit ------- 43.142000
Breakpoint 1 hit
Debug session time: Wed Jul 8 16:58:41.359 2009 (GMT+3)
System Uptime: 6 days 2:43:43.143
Process Uptime: 0 days 0:00:20.216
Kernel time: 0 days 0:00:00.015
User time: 0 days 0:00:00.000
------------------------------- 1 hit ------- 43.143000
Quick diff: 0.001000
---------------------------------------------
eax=0000000a ebx=00000000 ecx=00000065 edx=00000004 esi=00272d06 edi=005aa21c
eip=005a1399 esp=000afc50 ebp=000afc78 iopl=0 nv up ei pl nz ac pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000216
notepad!WinMain+0xc:
005a1399 33f6 xor esi,esi

0.001000 - это 1 милискунда
http://cid-eea2a7c767291ff9.skydrive.live.com/self.aspx/.Public/windbg|_catch|_time.rar

Архив