-1

Process Explorer 具有 CPU 时间(低至毫秒)和 CPU 周期的列。对于 WinDbg,我知道该!runaway命令!runaway 7以及更多详细信息,但它仅显示 CPU 时间。

在用户模式崩溃转储中,CPU 周期是否也可用?

进程资源管理器与 WinDbg

我试过的:

  • 我看了看,dt nt!_KTHREAD发现它有一个 CycleTime 属性

    ntdll!_KTHREAD
       +0x000 Header           : _DISPATCHER_HEADER
       +0x018 CycleTime        : Uint8B
    
  • 我试图在 a 中查询该属性!for_each_thread,但 WinDbg 响应它仅在内核模式下可用。

为什么我想要那些 CPU 周期?

我正在为 JetBrains dotTrace 进行培训。它有一个计算 CPU 周期的选项,我想解释一下这些周期的来源。上面的内核结构和 Process Explorer 可能就足够了,但是在用户模式转储中看到它的实时或死后状态会很棒。我用 WinDbg 解释了很多基础知识。

4

2 回答 2

0

ReactOS中执行后GetProcessTimes(),您可以看到信息是从进程中复制的KPROCESS。所以,事实上,它只存在于包含内核内存的转储中。

于 2017-04-04T23:05:27.727 回答
0
C:\tw>ls -l
total 0

C:\tw>cdb -c ".dump /ma .\tw.dmp;q" calc.exe | grep writ
Dump successfully written

C:\tw>cdb -c "lm;!peb;.dump /ma .\tw1.dmp;q" calc.exe | grep writ
Dump successfully written

C:\tw>cdb -c ".ttime;q" -z tw.dmp | grep -B 3 quit
Created: Wed Apr  5 20:03:55.919 2017 ()
Kernel:  0 days 0:00:00.046
User:    0 days 0:00:00.000
quit:

C:\tw>cdb -c ".ttime;q" -z tw1.dmp | grep -B 3 quit
Created: Wed Apr  5 20:04:28.682 2017 ()
Kernel:  0 days 0:00:00.031
User:    0 days 0:00:00.000
quit:

C:\tw>
于 2017-04-05T14:36:44.420 回答