有没有办法在WinDbg中确定,因为什么日期/时间在Windows线程是类似功能阻塞WaitForSingleObjects或WaitForMultipleObjects?
我知道如何在内核调试(使用!thread)中执行此操作,但我不知道如何在用户模式调试中执行此操作.
在WinDbg中,您可以使用!runaway获取线程时序:
!runaway
!runaway 1
Run Code Online (Sandbox Code Playgroud)
(用户时间)
!runaway 2
Run Code Online (Sandbox Code Playgroud)
(内核时间)
!runaway 4
Run Code Online (Sandbox Code Playgroud)
(经过时间)
(你会发现这些记录为0,1和2的一些地方,但根据我的经验,那些不起作用.也许它取决于WinDbg版本或其他东西......)
您可以通过计算从它的运行时间减去线程的用户和内核时间暂停花费的时间,但不幸的是,我不知道任何方式(简称编写的WinDbg插件)获得的WinDbg来为你做的.
如果未在WinDbg上设置,则可以使用Process Explorer获取相同的信息.右键单击某个进程并在属性对话框中选择"线程"选项卡时,将获得该进程中所有线程的列表.选择特定线程将显示相同的定时信息等.