mcp代理dbg(试验飞行员)
将AI调试置于崩溃转储的运行时真相中。
mcp-agenticdbg 是一个 MCP(模型上下文协议) 该服务器允许AI助手使用真实的调试器输出对崩溃进行分类,而不仅仅是从日志中猜测。
将其连接到Cursor、VS Code或任何兼容MCP的客户端,并询问:
- “是什么导致了这次坠机?”
- “显示此转储的调用堆栈。”
- “在我的仓库中找到错误的源代码行。”
该助手驱动CDB/GDB/LLDB,提取崩溃上下文,将其映射到源代码,并可选择生成补丁/PR工件。
灵感来自 mcp-windbg.
平台支持
| 平台 | 调试器 | 转储类型 | 状态 |
|---|---|---|---|
| Windows | CDB/Winkey | .dmp (小转储/完全转储) | 支持 |
| Linux | GDB | core, core.*, *.core | 支持 |
| macOS | LLDB | 核心转储 | 支持 |
适用于由编译的二进制文件 微软VC编译器, 叮当声, GNU 编译器套件,或任何产生标准调试信息的编译器。
快速开始
# Install (uv — recommended)
uv sync
# Or with pip
pip install -e .
# Verify
triagepilot --help
# Add MCP config (see Configuration below), then ask your assistant:
# "Analyze /path/to/crash.dmp and explain the root cause."运作原理
You (Cursor / VS Code)
|
| "Why did this crash happen?"
v
AI Assistant
|
v
TriagePilot MCP Server
|
+--> CDB (Windows) --> .dmp
+--> GDB (Linux) --> core dumps
+--> LLDB (macOS) --> core dumps- AI调用TriagePilot的MCP工具(
analyze_dump,run_debugger_cmd等等) - TriagePilot会自动检测您的平台并启动正确的调试器
- 调试器分析崩溃转储并返回结构化结果
- TriagePilot在您的本地仓库中定位故障源
- AI解释根本原因,提出修复建议,并可以创建PR
先决条件
安装
git clone https://github.com/itsmeakashgoyal/mcp-agenticdbg.git
cd mcp-agenticdbg
# Using uv (recommended — fast, locked dependencies)
uv sync # Core deps + dev tools
uv sync --extra langgraph # Optional: autonomous triage via LangGraph
# Or using pip
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\Activate.ps1
pip install -e .
pip install -e ".[langgraph]" # Optional: LangGraph support配置
最小MCP配置
{
"mcpServers": {
"triagepilot": {
"type": "stdio",
"command": "python",
"args": ["-m", "triagepilot"]
}
}
}带符号和回购路径
{
"mcpServers": {
"triagepilot": {
"type": "stdio",
"command": "python",
"args": [
"-m", "triagepilot",
"--symbols-path", "/path/to/symbols",
"--repo-path", "/path/to/repo"
]
}
}
}配置文件位置: .cursor/mcp.json (光标)或 .vscode/mcp.json (VS代码)。
可用工具
| 工具 | 说明 |
|---|---|
analyze_dump | 使用堆栈/模块/线程/源代码查找进行一次性崩溃分析 |
open_dump | 打开转储并初始化分析会话 |
run_debugger_cmd | 在活动会话上执行调试器命令 |
send_ctrl_break | 中断正在运行的调试器命令(CTRL+BREAK/SIGINT) |
close_dump | 关闭活动转储会话 |
list_dumps | 从平台感知路径中发现转储文件 |
create_repo_pr | 创建提交+分支+推送+GitHub PR |
create_shared_patch | 为共享/gitignored路径生成markdown补丁计划 |
auto_triage_dump | 自主端到端分流(需要 langgraph 额外) |
recall_similar_crashes | 在内存中搜索类似的过去碰撞分析 |
save_triage_result | 保存根本原因并修复持久内存问题 |
list_known_patterns | 浏览存储的碰撞模式 |
forget_pattern | 按ID删除内存条目 |
CLI选项
triagepilot [OPTIONS]| 选项 | 默认值 | 描述 |
|---|---|---|
--debugger-type TYPE | auto | 后端: auto, cdb, lldb, gdb |
--debugger-path PATH | 自动检测 | 调试器可执行文件的路径 |
--symbols-path PATH | 无 | 符号/调试信息路径 |
--image-path PATH | 无 | 可执行映像路径 |
--repo-path PATH | 无 | 源查找的存储库路径 |
--timeout SECONDS | 30 | 调试器命令超时 |
--verbose | 关闭 | 启用调试级别日志记录 |
--log-level LEVEL | INFO | DEBUG, INFO, WARNING, ERROR |
所有选项也可以通过环境变量进行配置 TRIAGEPILOT_ 前缀(例如。 TRIAGEPILOT_DEBUGGER_TYPE=gdb).
崩溃程序示例
这 examples/ 该文件夹包含十个故意崩溃的C++程序,包括堆栈溢出、释放后使用、双重释放、vtable损坏、堆损坏等。
# Build
cd examples && ./build.sh # Linux/macOS
cd examples && .\build.ps1 # Windows (MSVC)
# Generate core dump (macOS)
./gen_core_mac.sh use-after-free # writes build/out/core.use-after-free故障排除
看 docs/TROUBLESHOOTING.md 用于调试器设置、核心转储生成、符号解析等常见问题。
贡献
看 贡献.md 用于开发设置、代码风格、测试和PR指南。
许可证
BSD 3条款许可证。看 许可证 了解详情。
