Debugging Tools for Windows

!runaway

!runaway扩展命令显示每个线程消费的时间。

语法

!runaway [Flags

参数

Flags
指定要显示哪些信息。Flags可以是下面这些位的任意组合。默认值为0x1:
Bit 0 (0x1)
让调试器显示每个线程消耗的用户模式时间(user time)。
Bit 1 (0x2)
显示每个线程消耗的内核时间(kernel time)。
Bit 2 (0x4)
显示每个线程从创建开始经历了多少时间。

DLL

Windows 2000 Uext.dll
Ntsdexts.dll
Windows XP和之后 Uext.dll
Ntsdexts.dll

!runaway扩展命令只能在活动调试时,或者调试通过.dump /mt.dump /ma创建的dump文件时使用。

注释

该扩展命令可以用来快速找出哪些线程循环失去控制消耗了太多CPU时间。

输出中以调试器的内部线程号和16进制线程ID来标识每个线程。还会显示调试器ID。

下面是示例:


0:001> !runaway 7

 User Mode Time
 Thread       Time
 0:55c        0:00:00.0093
 1:1a4        0:00:00.0000

 Kernel Mode Time
 Thread       Time
 0:55c        0:00:00.0140
 1:1a4        0:00:00.0000

 Elapsed Time
 Thread       Time
 0:55c        0:00:43.0533
 1:1a4        0:00:25.0876

附加信息

关于用户模式下线程的信息,查看控制进程和线程。关于对进程和线程进行分析的信息,查看Mark Russinovich 和David Solomon 编写的Microsoft Windows Internals

Build machine: CAPEBUILD