Как выполнить захват стека вызовов Xperf в ОС 64b?
-
20-08-2019 - |
Вопрос
Я установил анализатор производительности Xperf из Windows SDK и записал трассировку, как описано в документации, с помощью следующей команды:
xperf -on SysProf -stackwalk profile
Тем не менее, трассировка стека не содержит никаких данных стека вызовов.
Моя платформа — Vista 64b.Существуют ли какие-либо специальные настройки или приемы, необходимые для захвата стеков вызовов в 64b Windows?
Решение
После некоторых поисков я нашел одну настройку:
Установите значение реестра DisablePagingExecutive = 1 и перезагрузитесь (см. Часто задаваемые вопросы по набору средств повышения производительности Windows).
Хотя это звучит великолепно, в моей системе это не помогает, стеков вызовов по-прежнему нет.
После обращения в службу поддержки Microsoft они ответили, что с x64 Vista вы можете захватывать только стеки вызовов собственных приложений x64, а не 32b.
В Windows 7 вроде бы убрали ограничение и на Win 7 x64 оно работает нормально, по крайней мере об этом говорится Презентация Valve на Xperf.