1

我有一个本机 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.

我知道探查器可以工作,因为我可以使用不同的配置获得结果。我也知道调试配置有效。知道出了什么问题吗?

4

1 回答 1

5

经过一番研究,我发现使用 dllhost 的唯一方法是使用命令行分析器。转到 VS 2010 命令提示符,然后输入

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

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

VSPerfCmd /detach:[PID]
VSPerfCmd /shutdown

你会得到你的绩效报告。

于 2011-07-21T14:22:39.263 回答