vault backup: 2026-05-05 00:27:30
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
- cpp-debugger-cli
|
||||
- 互娱
|
||||
- **从 ASAN 到 AI 的“接力排查”** https://km.netease.com/v4/detail/blog/256465
|
||||
- **1. 借助 ASAN 把“指针变野”的时间点钉住**
|
||||
- **1. 借助 ASAN 把“指针变野”的时间点钉住** [[UE5编辑器开启ASAN]]
|
||||
- 第一步是启用 ASAN(AddressSanitizer)来辅助定位:
|
||||
- 在 UE5 编辑器环境启用 ASAN,本身需要做一些额外工作:[https://km.netease.com/v4/detail/blog/254722](https://km.netease.com/v4/detail/blog/254722)
|
||||
- 这些环境搭建细节本文不展开,只强调结论:ASAN 成功启用,可以看到完整的分配 / 释放栈。
|
||||
@@ -29,6 +29,9 @@
|
||||
- [VSDebugMCP](http://git-internal.nie.netease.com/mcpanalyzer/VSDebugMCP)
|
||||
- [UnrealMCP](http://git-internal.nie.netease.com/mcpanalyzer/UnrealMCP)
|
||||
- [ue-reference-diagnostic-mcp](http://git-internal.nie.netease.com/mcpanalyzer/ue-reference-diagnostic-mcp)
|
||||
- VSCode MCP & Plugin
|
||||
- https://github.com/juehang/vscode-mcp-server
|
||||
- **`@modelcontextprotocol/server-dap` (DAP MCP)** **用途**:如前所述,这是 AI 进行代码调试的“圣杯”。***它允许大模型直接通过标准 DAP 协议连接到本地的 Python、C++ (GDB/LLDB)、Node.js 调试进程***。
|
||||
- LLDB MCP https://lldb.llvm.org/use/mcp.html
|
||||
- 其他仓库
|
||||
- https://github.com/akiselev/debugger-cli
|
||||
@@ -63,3 +66,23 @@ lldb --protocol-server start --port 59999
|
||||
# 安装通用的调试技能包
|
||||
claude skill install AlmogBaku/debug-skill
|
||||
```
|
||||
|
||||
## VSCode
|
||||
这的确是一个非常典型的架构差异问题。你提到通过 COM (Component Object Model) 接口控制 Visual Studio,这非常精准,因为 VS 的底层重度依赖 Windows 的 COM 组件机制(如 DTE 对象)。
|
||||
但对于 **VS Code** 来说,情况完全不同。VS Code 是基于 Electron 和 Node.js/TypeScript 构建的,**它根本没有 COM 接口**。
|
||||
要让 MCP (Model Context Protocol) 或者外部 AI Agent 控制 VS Code,特别是进行断点调试,社区目前有几套非常成熟的开源方案和设计思路:
|
||||
|
||||
---
|
||||
### 一、 VS Code 的 MCP 控制方案
|
||||
针对 VS Code 的架构,目前主要有三种主流的控制路径:
|
||||
#### 1. “由内向外”方案:Agent 直接作为 VS Code 插件 (目前最稳定、最主流)
|
||||
与其让外部的 MCP 服务去“黑客”般地控制 VS Code,不如**让 Agent 直接运行在 VS Code 内部**。
|
||||
- **原理**:像 **Cline**、**Roo Code** 这样的插件,它们本身就拥有完整的 VS Code Extension API 权限(可以打开文件、打断点、读取控制台)。
|
||||
- **MCP 的角色**:在这种架构下,VS Code 插件作为 **MCP Client**,它去连接外部的 MCP Server(比如获取特定的代码分析工具、数据库查询权限等),而不是让 MCP 来控制 VS Code。
|
||||
#### 2. DAP-MCP 桥接方案 (专门针对断点调试)
|
||||
VS Code 所有的调试能力都是基于 **DAP (Debug Adapter Protocol)** 构建的。如果你想让一个外部的 Agent(比如你终端里的 Claude Code)控制 VS Code 的调试器,最好的办法是拦截或桥接 DAP。
|
||||
- **原理**:启动一个 `mcp-server-dap`。这个 MCP 服务把 Agent 发出的 MCP 指令(如“继续执行”、“查看变量”)翻译成标准的 DAP 协议,直接发给 VS Code 底层的 Debug Adapter(比如 `cppdbg` 或 `lldb-dap`)。
|
||||
- **效果**:AI 不需要点击 VS Code 的 UI 按钮,它直接和 VS Code 背后那个真正负责调试的引擎对话。
|
||||
#### 3. “由外向内”方案:WebSocket / RPC 桥接插件
|
||||
如果你的 Agent 必须在外部运行,且需要控制 VS Code 的 UI(比如让编辑器滚动、高亮某一行代码)。
|
||||
- **原理**:需要在 VS Code 里安装一个**暴露 WebSocket 或 HTTP 接口的桥接插件**。外部的 MCP Server 通过向这个本地端口发送 JSON-RPC 指令,插件再调用 VS Code API 来执行操作。
|
||||
Reference in New Issue
Block a user