You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSDiagnostics.exe远程内存分析支持性及原生C++配置方法咨询

远程Windows机器原生C++应用内存分析(基于VSDiagnostics.exe)

1. VSDiagnostics.exe是否支持远程内存分析?

是的,VSDiagnostics.exe(属于Visual Studio远程工具套件)确实支持在未安装Visual Studio的远程Windows机器上对原生C++应用进行内存分析,依赖你提到的MemoryProfilerCollectionAgent.dll和NativeMemoryCollectionAgent.dll两个代理组件。微软官方文档虽未提供完整配置示例,但该功能是可用的。

2. 获取CLSID与编写自定义代理配置文件的方法

获取代理CLSID

  • 打开远程机器的注册表编辑器(运行regedit.exe)
  • 导航到HKEY_CLASSES_ROOT\CLSID,在注册表中搜索NativeMemoryCollectionAgent(针对原生C++内存分析)或MemoryProfilerCollectionAgent(针对托管/混合应用)
  • 找到对应项后,右侧窗口的(默认)值即为该代理的CLSID(格式为{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX})

编写配置JSON文件

配置文件需指定代理的CLSID、路径、会话参数等,以下是原生C++内存分析的示例配置:

{
  "CollectionAgents": [
    {
      "Clsid": "{替换为你的NativeMemoryCollectionAgent的CLSID}",
      "Path": "NativeMemoryCollectionAgent.dll",
      "Arguments": "",
      "Properties": {
        "SessionName": "RemoteNativeMemProfile",
        "ProfilingType": "Sampling", // 原生分析推荐采样模式,也可选择Instrumentation(插桩)
        "OutputPath": "C:\\RemoteProfiling\\MemoryResults.etl" // 需确保路径存在且有写入权限
      }
    }
  ]
}

执行命令示例

在远程机器上以管理员身份打开命令提示符,运行以下命令启动分析:

VSDiagnostics.exe start RemoteMemSession /attach:4567 /loadConfig:C:\\RemoteProfiling\\MemConfig.json
  • RemoteMemSession:自定义的会话ID,可任意命名
  • 4567:目标原生C++应用的进程ID(PID),替换为实际值
  • C:\\RemoteProfiling\\MemConfig.json:你编写的配置文件的完整路径

分析结束后,执行以下命令停止会话并生成结果文件:

VSDiagnostics.exe stop RemoteMemSession

内容的提问来源于stack exchange,提问作者Eric Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:45:02