Ответ 1
В WinDbg вы можете использовать !runaway
для получения таймингов потока:
!runaway
!runaway 1
(время пользователя)
!runaway 2
(время ядра)
!runaway 4
(прошедшее время)
(Вы обнаружите, что эти документы указаны как 0, 1 и 2 в некоторых местах, но по моему опыту они не работают. Возможно, это зависит от версии WinDbg или чего-то еще...)
Вы можете вычислить время, потраченное на приостановку, вычитая время пользователя и время ядра из него по истечении времени, но, к сожалению, я ничего не знаю (не написав плагин WinDbg), чтобы заставить WinDbg сделать это за вас.
Если вы не настроены на WinDbg, вы можете использовать Process Explorer для получения той же информации. Когда вы щелкните правой кнопкой мыши процесс и выберите вкладку потоков в диалоговом окне свойств, вы получите список всех потоков в этом процессе. Выбор конкретного потока покажет одну и ту же информацию о времени.