У меня есть приложение, которое я хочу профилировать с помощью анализатора производительности Windows. Все это работает, но я не получаю никаких разумных следов стека из моего приложения.
Данное приложение является демонстрационным приложением. Это должно дать мне хорошее чувство, если все проверят. Затем я хочу профилировать другое приложение. Поскольку у меня есть полный контроль над моим демонстрационным приложением, я включил некоторые функции маркеров, которые должны отображаться в трассировке стека.
При запуске приложения в Windwos 7 1 Process Explorer показывает правильную трассировку стека для детали, которую я хочу профилировать. Вот трассировка стека с функциями маркера в строках 7 - 9:
![Process Explorer Stack Trace](https://i.stack.imgur.com/OrAlX.png)
Поскольку я установил все инструменты для анализа производительности внутри виртуальной машины Windows 10 2 , я начал там профилирование. Первое, на что нужно обратить внимание: Process Explorer не показывает правильную трассировку стека. Функции маркеров, которые я реализовал, нигде не найдены.
Тем не менее, я записал трассировку производительности, используя UIforETW и Windows Performance Recorder . Когда они открываются в WPA и фокусируются на целевом приложении, это трассировка стека:
![WPA Stack Trace](https://i.stack.imgur.com/Kur8I.png)
Вся интересующая меня информация отсутствует. Стек отображается как <Application>.exe!<Missing ImageId event>
Что я сделал не так?
Если это подсказывает вам, вот соответствующее программное обеспечение, которое установлено:
1: на компьютере с Windows 7 установлена Visual Studio (C #).
2: В виртуальных машинах Windows 10 нет Visual Studio, но установлены WinDBG (Preview) и Windows Performance Toolkit.
Я пометил delphi , потому что целевое приложение написано на Delphi.