vault backup: 2026-05-05 00:27:30

This commit is contained in:
2026-05-05 00:27:30 +08:00
parent 0870416dda
commit 01405211ad

View File

@@ -20,7 +20,7 @@
- cpp-debugger-cli
- 互娱
- **从 ASAN 到 AI 的“接力排查”** https://km.netease.com/v4/detail/blog/256465
- **1. 借助 ASAN 把“指针变野”的时间点钉住**
- **1. 借助 ASAN 把“指针变野”的时间点钉住** [[UE5编辑器开启ASAN]]
- 第一步是启用 ASANAddressSanitizer来辅助定位
- 在 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
@@ -62,4 +65,24 @@ 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 来执行操作。