Visual Studio 2012 分析远程调试过程

Posted

技术标签:

【中文标题】Visual Studio 2012 分析远程调试过程【英文标题】:Visual studio 2012 profiling remotely debugged process 【发布时间】:2014-07-09 22:34:14 【问题描述】:

是否可以分析远程调试的进程?

我尝试过使用来自 article on remote debugging with VS 2012

这无济于事,因为在启动分析器时,它会询问已调试的 dll 和 exe 的路径:即使您应用了远程调试设置(如文章中所述),这些路径也不会被视为远程计算机上的路径。

【问题讨论】:

【参考方案1】:

不幸的是,直接从 Visual Studio IDE 中这是不可能的(至少正如我通过大量研究所理解的那样),目前唯一可能的方法是使用独立的分析器。

注意:以下内容适用于 Visual Studio 2013,但可能是旧发行版的指南。

独立分析器让您可以直接从生产机器分析应用程序,而无需安装所有开发框架。

此独立探查器随 Visual Studio 提供,可在其中找到其设置文件。我在以下文件夹中找到它:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools\Setups\

我找到了两个文件:vs_profiler_x64_enu.exevs_profiler_x86_enu.exe。我选择了第一个,但取决于目标机器的架构。将此文件带到目标计算机并安装它。

现在,在目标计算机上,您必须启动应用程序以通过位于文件夹中的实用程序 VCPrefCmd.exe 进行配置:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools

通过命令行。因此,您可以在环境中添加上述路径或只需键入以下内容:

"c:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools\VSPerfCmd.exe" /start:sample /output:"c:\report.vsp" /launch:"c:\pathTo\appToProfile.exe"

地点:

/start 是分析模式,在这种情况下是“采样” /output 要生成的报告的路径名 /launch 你的应用程序来配置文件

现在您的应用程序将自动启动,您将完成所有工作。

完成后,关闭分析应用程序并在上一个命令行中键入以下命令:

"c:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools\VSPerfCmd.exe" /shutdown

这将停止分析并生成包含所有数据的report.vsp(或任何你称之为的)文件。

现在将此生成的文件带到您的开发机器上并将其提供给您的 Visual Studio(打开或拖放),您将获得您的应用程序配置文件。

虽然期待在 Visual Studio 中完成“远程调试和分析”的嵌入,但这个过程可能已经足够公平了。

【讨论】:

请注意,对于 VS 14.0 和更新版本,VSPerfCmd.exe 会产生错误,指示您改用 VSPerf。幸运的是,VSPerf.exe 的参数非常相似 - 请参阅 vsperf /? 知道如何将独立分析器附加到正在运行的 ASP.NET 应用程序吗? @JordanRieger 附加到 ASP.NET 由 cskwg 的 other answer 指出。【参考方案2】:

只是想补充一下这个非常好的答案,Visual Studio 2017 的工具位于以下文件夹中:

C:\Program Files (x86)\Microsoft Visual Studio 15.0\Team Tools\Performance Tools\x64

安装文件位于:

c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Team Tools\Performance Tools\Setups\

附加到正在运行的 ASP.net 应用程序的命令是:

VSPerfCmd.exe /attach:4716 /Crosssession /start:sample /output:report.vsp <br/>

就我而言,这在旧的 Windows 7 机器上不起作用。

但以下一个做到了:

C:\Program Files (x86)\Microsoft Visual Studio 15.0\Team Tools\Performance Tools

VSPerf.exe /attach:4711 /file:report.vspx
VSPerf.exe /status
VSPerf.exe /stop

然后可以使用 Visual Studio 打开生成的 VSPX 文件。

【讨论】:

以上是关于Visual Studio 2012 分析远程调试过程的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2012 远程调试:对内存位置的无效访问

我可以在 Windows XP 上使用 Visual Studio 2010 远程调试器从 Visual Studio 2012 调试 .Net 4.0 应用程序吗?

无法在 Windows Server 2008 上运行 Visual Studio 2012 远程调试器

远程进程的 Visual Studio 2012 调试未按预期工作

Visual Studio + 远程 gdb 调试

Visual Studio 2012 没有调试选项