Почему я не могу профилировать с помощью vsperfmon, подключив к dllhost.exe? - PullRequest
1 голос
/ 10 июня 2011

У меня есть собственный проект C ++, который использует COM для связи с отдельным проектом в VB.NET.Я был в состоянии успешно профилировать нативный проект в прошлом, прикрепив проект к отдельному exe-файлу, который ссылается на нативный dll.Я сейчас пытаюсь профилировать собственный проект, подключившись к dllhost.exe.Эта конфигурация работает, так как я могу отлаживать через dllhost, но если я пытаюсь профилировать код (или просто присоединяю профилировщик к dllhost во время отладки), профилировщик останавливается, и я получаю следующий вывод:

PRF0010: Launch Aborted - Unable to start vsperfmon.exe
Error VSP1712: Invalid File: C:\...\MyProj110609.vsp
PRF0025: No data was collected.

Я знаю, что профилировщик работает, так как я могу получить результаты, используя другую конфигурацию.Я также знаю, что конфигурация отладки работает.Есть идеи, что не так?

1 Ответ

5 голосов
/ 21 июля 2011

После некоторых исследований я обнаружил, что единственный способ сделать это с помощью dllhost - использовать профилировщик командной строки.Перейдите в командную строку VS 2010 и введите

VSPerfCmd /start:sample /output:c:\TestFile.vsp
VSPerfCmd /attach:[PID]

, где c:\TestFile.vsp - имя и путь к выходному файлу, а [PID] - идентификатор профиля dllhost.Запустите все, что вы хотите профилировать, и когда вы закончите, введите

VSPerfCmd /detach:[PID]
VSPerfCmd /shutdown

, и вы получите свой отчет о производительности.

...