Special Command—CPU Time for Each Thread with !runaway

This is one of my favorite commands! !runaway displays information about the CPU time consumed by each thread in User Mode and Kernel Mode.

It is one of those commands you run when you think the application is hung with low or high CPU or has some kind of performance issue.

 

Parameters:

Bit 0 (0x1)

Causes the debugger to show the amount of user time consumed by each thread.

Bit 1 (0x2)

Causes the debugger to show the amount of kernel time consumed by each thread.

Bit 2 (0x4)

Causes the debugger to show the amount of time that has elapsed since each thread was created.

The output is sorted from the thread consuming the most CPU time to the thread consuming the least CPU time.

Example of displaying just the User Time for each thread (no parameters does that):

0:000> !runaway

 User Mode Time

  Thread Time

  52:33b4 0 days 0:00:01.435

 317:2834 0 days 0:00:00.982

  93:2d60 0 days 0:00:00.936

 479:3858 0 days 0:00:00.842

 266:33b0 0 days 0:00:00.842

 658:23d8 0 days 0:00:00.826

 559:1acc 0 days 0:00:00.826

 299:357c 0 days 0:00:00.826

 279:bf8 0 days 0:00:00.826

 719:39c0 0 days 0:00:00.811

 509:38d0 0 days 0:00:00.811

 376:19a0 0 days 0:00:00.811

 314:3700 0 days 0:00:00.811

  84:338c 0 days 0:00:00.811

 731:2fa0 0 days 0:00:00.795

 691:2070 0 days 0:00:00.795

  24:1b88 0 days 0:00:00.795

 800:3ca4 0 days 0:00:00.780

 761:3c08 0 days 0:00:00.780

 720:3968 0 days 0:00:00.780

. . .

. . .

. . .