为什么我无法通过附加到dllhost.exe来使用vsperfmon进行配置?

Joh*_*ohn 1 profiler visual-studio-2010 vsperfmon

我有一个本机C++项目,它使用COM与VB.NET中的单独项目进行通信.通过将项目附加到引用本机dll的单独exe,我已经能够成功地分析过去的本机项目.我现在正试图通过连接到dllhost.exe来配置本机项目.这个配置有效,因为我可以通过dllhost进行调试,但是如果我尝试分析代码(或者只是在我调试时将探查器附加到dllhost),那么探查器会停止并得到以下输出:

PRF0010: Launch Aborted - Unable to start vsperfmon.exe
Error VSP1712: Invalid File: C:\...\MyProj110609.vsp
PRF0025: No data was collected.
Run Code Online (Sandbox Code Playgroud)

我知道分析器有效,因为我可以使用不同的配置获得结果.我也知道调试配置有效.什么出错了?

Joh*_*ohn 5

经过一些研究,我发现使用dllhost执行此操作的唯一方法是使用命令行分析器.转到VS 2010命令提示符,然后键入

VSPerfCmd /start:sample /output:c:\TestFile.vsp
VSPerfCmd /attach:[PID]
Run Code Online (Sandbox Code Playgroud)

其中c:\TestFile.vsp是输出文件的名称和路径,[PID]是dllhost的配置文件ID.运行您想要分析的任何内容,完成后输入

VSPerfCmd /detach:[PID]
VSPerfCmd /shutdown
Run Code Online (Sandbox Code Playgroud)

你会得到你的绩效报告.