.ttime (Display Thread Times)
ttime命令显示线程的创建时间,以及它在内核模式和用户模式下运行的时间。
.ttime
环境
Modes |
user mode only |
Targets |
live, crash dump |
Platforms |
x86 only |
说明
此命令仅在用户模式下工作。在内核模式下你应该使用!thread。只要使用/mt或/ma选项创建用户模式的小型转储,此命令就可以使用;
0:000:x86> .ttime Created: Thu Apr 9 09:36:08.130 2020 (UTC + 8:00) Kernel: 0 days 0:01:05.875 User: 0 days 0:01:09.859
.ttime 可以查看当前线程的运行时间(用户态运行时间和内核态运行时间)。但是 .ttime 有个不足之处——没有输出相关的线程标识。我们需要根据其它信息来获取当前线程的标识。
如果想查看所有线程的运行时间怎么办呢?当然可以手动切换到另外一个线程,然后执行 .ttime 。如果线程数量很多的话,这可是个体力活。不要怕,我们可以通过命令 ~*e .ttime 来获取每个线程的运行时间。因为 .ttime 输出结果中没有线程标识,我们需要执行命令 ~*e ? $tid;.ttime 把对应的 线程ID 一起输出。
0:000:x86> ~*e ? $tid;.ttime Evaluate expression: 16904 = 00004208 Created: Thu Apr 9 09:36:08.130 2020 (UTC + 8:00) Kernel: 0 days 0:01:05.875 User: 0 days 0:01:09.859 Evaluate expression: 9256 = 00002428 Created: Thu Apr 9 09:36:08.461 2020 (UTC + 8:00) Kernel: 0 days 0:00:00.000 User: 0 days 0:00:00.000 Evaluate expression: 6268 = 0000187c Created: Thu Apr 9 09:36:08.462 2020 (UTC + 8:00) Kernel: 0 days 0:00:00.000 User: 0 days 0:00:00.000 Evaluate expression: 11704 = 00002db8 Created: Thu Apr 9 09:36:08.469 2020 (UTC + 8:00) Kernel: 0 days 0:00:00.000 User: 0 days 0:00:00.000 Evaluate expression: 9196 = 000023ec Created: Thu Apr 9 09:36:08.506 2020 (UTC + 8:00) Kernel: 0 days 0:00:00.000 User: 0 days 0:00:00.000 Evaluate expression: 15868 = 00003dfc Created: Thu Apr 9 09:36:08.506 2020 (UTC + 8:00) Kernel: 0 days 0:00:00.015 User: 0 days 0:00:00.000