最近在做的项目上做了一些性能优化的工作,用到了 Visual Studio 远程调试,所以本篇文章整理一下远程调试技巧。
首先,了解一下 Visual Studio远程调试是什么?
3.设置远程调试器[1],这是最重要的一环,远程调试器是跟随 Visula Studio 安装时一同安装的,若要远程调试的计算机安装了 Visula Studio, 可以直接找到他启动,若要远程的调试的计算机是纯净环境,那么可以通过设置文件共享[1],将本机的远程调试器共享以便调试,另外如果要远程调试的计算机是服务器,你需要经常进行这样的远程调试,则可以将远程调试器配置为服务[1]。
using System; using System.Management; using System.Text; class Program { static void Main() { //回车后开始输出,便于等待远程调试接入 Console.ReadLine(); StringBuilder sb = new StringBuilder(); sb.AppendLine("计算机基本信息:\n"); // 堆代码 duidaima.com // 获取操作系统信息 sb.AppendLine("操作系统信息:"); var osQuery = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem"); foreach (var os in osQuery.Get()) { sb.AppendLine($"名称: {os["Caption"]}"); sb.AppendLine($"版本: {os["Version"]}"); sb.AppendLine($"制造商: {os["Manufacturer"]}"); sb.AppendLine($"计算机名: {os["CSName"]}"); } sb.AppendLine(); // 获取处理器信息 sb.AppendLine("处理器信息:"); var cpuQuery = new ManagementObjectSearcher("SELECT * FROM Win32_Processor"); foreach (var cpu in cpuQuery.Get()) { sb.AppendLine($"名称: {cpu["Name"]}"); sb.AppendLine($"制造商: {cpu["Manufacturer"]}"); sb.AppendLine($"描述: {cpu["Description"]}"); } sb.AppendLine(); // 获取内存信息 sb.AppendLine("内存信息:"); var memQuery = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory"); foreach (var mem in memQuery.Get()) { sb.AppendLine($"容量: {Math.Round(Convert.ToDouble(mem["Capacity"]) / (1024 * 1024 * 1024), 2)} GB"); sb.AppendLine($"速度: {mem["Speed"]} MHz"); } var str= sb.ToString(); Console.Write(str); Console.ReadLine(); } }然后在本机 Debug 一下看一下本机的信息:
C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Remote Debugger\x64msvsmon.exe C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Remote Debugger\x86\msvsmon.exe但是,一般我们都不会在发布计算机或者服务器上安装调试环境,所以还有第二种方式,以文件共享的方式,将当前开发环境电脑的远程调试器共享给发布计算机或者服务器。具体如何设置共享文件夹就不在这里赘述了,我这里使用 MobaXterm 远程过去后自动添加了C盘的共享,可以直接使用。
4.勾选显示所有用户的进程,防止找不到目标进程。
选中目标进城后,确认附加,就可以进行远程调试了。从下图可以看到,输出了目标目标计算机或服务器的电脑基本信息。
参考链接
[1] Visual studio (windows)远程调试 --- https://learn.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging?view=vs-2022
[2] 调试程序中的符号(.pdb)和源文件 --- https://learn.microsoft.com/zh-cn/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger?view=vs-2022
[3] 远程调试c#项目 --- https://learn.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging-csharp?view=vs-2022