本文可帮助你了解 WinDbg MCP 的工作原理,并确定是否基于客户端支持和安全与隐私注意事项使用它。 WinDbg MCP 使用模型上下文协议(MCP)将支持的 AI 客户端连接到活动的 WinDbg 会话,客户端可以在分析期间使用调试器工具和上下文。
在 WinDbg 中查看 AI 发起的调试器操作时,可以使用此连接调查调试目标。 AI 生成的结论不具有权威性。 根据 WinDbg 中的输出验证结果、证据、假设、目标状态和命令。
WinDbg MCP 的工作原理
WinDbg MCP 在 AI 客户端与 WinDbg 中的 MCP 服务器之间使用本地代理。 该连接具有以下体系结构:
该图使用紧凑阶梯布局来显示双向连接。 AI 模型服务和 AI 客户端交换 AI 请求和响应。 AI 客户端和DbgX.Mcp.Proxy.exe通过 stdio MCP 通信。
DbgX.Mcp.Proxy.exe 和 WinDbg MCP 服务器通过本地每个进程命名管道进行通信。 WinDbg MCP 服务器提供工具、提示和资源。
每个 WinDbg 会话都使用一个本地的、每个进程一个的命名管道。
DbgX.Mcp.Proxy.exe 通过标准输入和输出与 AI 客户端通信,并将客户端连接到一个选定的 WinDbg 会话。
AI 客户端可以将调试上下文作为 AI 请求和响应的一部分发送到其配置的模型服务。 你仍控制调试会话,可以在 WinDbg 中查看 AI 发起的调试器操作。
客户端支持和会话限制
WinDbg MCP 支持以下 AI 客户端:
- 将 Visual Studio Code 与 GitHub Copilot 配合使用
- GitHub Copilot 命令行界面 (CLI)
其他与 MCP 兼容的 AI 客户端可通过自定义配置运行,但不作保证,不过 WinDbg 并未正式支持它们。 仅在确认其 MCP 功能和安全控制符合组织要求后,才使用自定义客户端。
一次只能有一个活动的 MCP 客户端连接到 WinDbg 会话。 单独的 WinDbg 会话使用单独的本地命名管道。 在受限的环境中,组织策略可以隐藏或禁用 MCP 控制。
WinDbg MCP 工具和提示
WinDbg MCP 提供连接工具、调试器工具和内置提示。 WinDbg 中的 “安装 MCP” 操作将 WinDbg 注册为供选定的 AI 客户端使用的 MCP 服务器。 代理连接到 WinDbg 会话后,AI 客户端会自动选择相应的工具。
使用以下连接工具查找并选择 WinDbg 会话:
| 连接工具 | Purpose |
|---|---|
list_sessions |
列出具有活动 MCP 服务的 WinDbg 会话,并报告每个会话是否可用。 |
connect_session |
按进程 ID 将代理连接到 WinDbg 会话。 |
disconnect_session |
断开代理与当前 WinDbg 会话的连接。 |
连接后,请让 AI 客户端使用 WinDbg MCP 执行以下操作:
- 检查或控制调试目标。
- 运行 WinDbg 命令。
- 查看诊断和源代码。
- 将调试器数据可视化。
- 创建分析脚本。
使用内置的 WinDbg MCP 提示
如果 AI 客户端支持 MCP 提示,请选择内置提示以启动引导式调试工作流。
| 内置提示 | Purpose |
|---|---|
investigate_symbol_loading_issues |
诊断符号加载问题。 |
write_extension |
创建 WinDbg JavaScript 扩展。 |
create_graph |
将调试器数据可视化为图形。 |
configure_ttd |
配置时间旅行调试工作流。 |
使用 WinDbg MCP 进行调试
以下提示为支持的调试方案提供起点:
| Scenario | 示例提示 |
|---|---|
| 查找故障转储的根本原因 | “分析此转储并提供可能的根本原因、支持证据和剩余假设。 |
| 调查实时目标 | “检查目标状态,根据需要中断,并检查调用堆栈和模块是否有故障信号。 |
| 修复符号或源加载 | “使用日志和命令历史记录来识别符号或源无法正确加载的原因并建议修复。 |
| 分析时间旅行调试跟踪 | “分析此 TTD 跟踪并确定关键转换、证据和可能的分歧点。 |
| 可视化调试器查询结果 | 以树形图、网格或图形方式查询并可视化此调试器数据模型输出。 |
| 自动执行重复性分析 | “创建并验证自动执行此分析工作流的脚本。 |
在据此采取操作之前,将 AI 客户端的结果与目标状态和可见调试器输出进行比较。
WinDbg MCP 安全和隐私注意事项
在使用 WinDbg MCP 之前,请评估目标、其数据、所选 AI 客户端和配置的模型服务。 应用以下所有指南:
- 授权使用: 仅对您有权检查的目标和数据使用 WinDbg MCP。 遵循组织的 AI、安全、隐私和数据处理策略。
- 发送到 AI 服务的数据: AI 客户端可以将调试器上下文发送到其配置的模型服务。 确认你的组织批准将目标及其数据用于所选客户端和模型服务。
- 诊断日志: MCP 诊断日志可以包含调试器命令和目标数据。 根据你的组织策略,将这些日志作为敏感数据进行存储、共享和保留。
- AI 验证: 将 AI 输出视为调查建议,而不是最终结果。 在根据输出采取操作之前,请根据 WinDbg 中可见的信息对其进行验证。
- 管理员控制: 组织可以通过启用 WinDbg 受限模式 来禁用 WinDbg MCP。 管理员通过将 设置为 来配置受限模式。 更改此设置后重启 WinDbg。 受限模式除了 MCP 之外,还会影响其他 WinDbg 功能。
安全模式
安全模式限制调试器功能,以减少加载或执行不受信任的代码、启动进程或执行不安全文件操作的风险。 它阻止高风险命令,例如 .shell。 默认情况下,当 MCP 服务器启动时,安全模式将激活。
若要配置 MCP 服务器默认是否启用安全模式,请在 WinDbg 中选择 文件>设置>MCP 服务设置,然后选择或清除 为 MCP 服务器启用安全模式。
安全模式行为取决于是否选择该设置,以及是在连接到目标之前还是之后启动 MCP 服务:
- 完全安全模式: 在连接到目标之前启动 MCP 服务,并保持 “在 MCP 服务器启动时启用安全模式” 处于选中状态。
- 部分安全模式: 如果在启动 MCP 服务时已连接到目标,WinDbg 将进入部分安全模式并显示警告。 要获取完整安全模式,请重启 WinDbg,启动 MCP 服务,然后连接到目标。
- 没有安全模式: 在确认对话框中,取消选中 MCP 服务器启动时启用安全模式,然后选择“是”以确认选择。
在确认对话框中清除或选择复选框也会更新文件>设置>MCP 服务设置>启用 MCP 服务器的安全模式。 因此,该选择项将成为未来 MCP 启动时的默认选项。
安全模式激活后,无法将其关闭,在重启 WinDbg 之前,它保持活动状态。 停止 MCP 服务不会禁用它。 重启 WinDbg 后,如果想要在不使用安全模式的情况下使用 MCP,请清除 MCP 服务器启动时启用安全模式。
有关详细信息,请参阅 安全模式的功能。
Warning
如果没有安全模式,AI 客户端直接运行的命令仍然受到限制,但间接操作不受限制。 例如,如果 AI 客户端设置运行命令的断点,该命令将在命中断点时使用你的全部权限运行。
禁用跨提示注入保护不会禁用安全模式。
安全地使用脚本和扩展
WinDbg MCP 可以帮助你创建或修改调试脚本和 WinDbg JavaScript 扩展。 这些建议适用于所有脚本和扩展,无论是由 AI 生成、由您的团队开发,还是由第三方供应商提供。 像来自任何其他不受信任的源的代码一样处理生成的或修改的代码。 在加载或运行它之前查看并批准它,尤其是在调试客户环境或敏感目标时。
在使用任何脚本或扩展之前,请应用以下建议:
- 查看代码: 当源可用时,请查看代码。 否则,请验证发布者、数字签名、下载源、版本、依赖项和记录的行为。
- 了解信任边界: WinDbg 扩展可以在调试器进程中运行代码并访问调试数据。 安全模式会限制某些操作,但它不会验证、进行沙盒隔离或建立对扩展的信任。
- 安全测试: 在隔离环境中使用非敏感目标进行测试。 在测试中包括格式不正确或意外的调试器数据、故障处理和资源使用情况。
- 使用最低权限: 除非调试方案需要提升,否则运行没有管理员权限的 WinDbg。
- 保护客户数据: 确认代码不会向未批准的位置披露内存、源代码、符号、文件路径、诊断输出或其他敏感数据。
- 控制部署: 仅使用来自已批准的源的扩展。 对于托管或生产环境,请使用通过批准的部署通道传递的已审阅、签名、版本固定的包。 在部署之前查看并测试每个更新。
不要仅仅为了加载或运行脚本或扩展而禁用安全模式。 如果扩展要求您禁用安全模式,请查看其行为,了解该更改会移除哪些限制,并获得您所在组织的安全审阅者的批准。 有关详细信息,请参阅 安全模式。
交叉提示注入保护
WinDbg 将某些操作分类为受保护操作。 对于受保护的操作,WinDbg 使用 AI 客户端配置的模型服务对操作的调试器输出进行跨提示注入攻击(XPIA)检测。 WinDbg 阻止分类标识为潜在不安全的输出。
XPIA 保护取决于 MCP 采样。 AI 客户端必须支持并允许 MCP 采样,以便 WinDbg 可以从配置的模型服务请求分类。 如果无法运行分类,则受保护的操作将失败,而不会返回输出。
“启用交叉提示注入缓解”设置控制 XPIA 保护。 仅在受信任的环境中,并且仅针对贵组织批准的目标,在贵组织的安全审查人员批准该决定且其他控制措施已解决提示注入风险后,才禁用此保护。
提供有关 WinDbg MCP 的反馈
你的反馈有助于Microsoft改进 WinDbg MCP,并确定修补程序和功能的优先级。 若要报告 bug 或建议功能,请在 WinDbg 反馈存储库中创建问题。