使用说明
mcp windbg rs
中文文档 |英语
A. 模型上下文协议 用于Windows调试的(MCP)服务器——通过CDB进行崩溃转储分析、远程调试和直接程序调试。
用Rust和 东京 用于异步I/O。作为单个可执行文件发布,没有运行时依赖关系。
特性
- 碰撞倾倒分析 --打开
.dmp文件,自动运行!analyze -v,检查线程、模块和堆栈跟踪 - 远程调试 --通过连接字符串连接到远程调试会话
- 直接程序调试 --在CDB下启动可执行文件,设置断点,遍历代码,检查变量
- 会话管理 --多个并发调试会话,可自动重用
- 可配置超时 --初始化(符号加载)和命令执行分别超时
先决条件
- Windows 10+
- Windows 调试工具 (提供
cdb.exe)
如果未安装CDB,您可以通过以下方式获取:
winget install Microsoft.WinDbg
服务器自动从Windows SDK默认路径、Windge Preview(Microsoft Store)和 PATH.
安装
来源
cargo build --release
二元的: target/release/mcp-windbg-rs.exe
配置
VS代码/Kiro
.vscode/mcp.json:
{
"servers": {
"mcp-windbg": {
"type": "stdio",
"command": "/path/to/mcp-windbg-rs.exe",
"args": [],
"env": {
"_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
}
}
}
}
Claude Desktop/Cline/其他MCP客户端
{
"mcpServers": {
"mcp-windbg-rs": {
"command": "mcp-windbg-rs",
"args": [],
"env": {
"_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
}
}
}
}
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
CDB_PATH |
自定义路径 cdb.exe |
自动发现 |
_NT_SYMBOL_PATH |
调试符号搜索路径 | -- |
_NT_SOURCE_PATH |
源文件搜索路径 | -- |
MCP_WINDBG_TIMEOUT |
命令超时(秒) | 30 |
MCP_WINDBG_INIT_TIMEOUT |
转储/符号加载的初始化超时(秒) | 120 |
MCP_WINDBG_VERBOSE |
详细日志记录(true/false) |
false |
CLI选项
mcp-windbg-rs [OPTIONS]
--timeout <SECONDS> Command execution timeout (default: 30)
--init-timeout <SECONDS> Initialization timeout (default: 120)
--verbose Enable verbose logging
工具
| 工具 | 说明 |
|---|---|
open_windbg_dump |
打开并分析崩溃转储文件 |
open_windbg_remote |
连接到远程调试会话 |
launch_debug |
在CDB下启动程序进行调试 |
run_windbg_cmd |
在会话中执行任何Winge/CDB命令 |
close_windbg_dump |
关闭转储文件会话 |
close_windbg_remote |
关闭远程调试会话 |
close_debug |
关闭启动调试会话并终止程序 |
list_windbg_dumps |
列表 .dmp 目录中的文件 |
使用示例
碰撞倾倒分析
Analyze the crash dump at C:\dumps\app.dmp
远程调试
Connect to tcp:Port=5005,Server=192.168.0.100 and show the current state
直接程序调试
启动程序,设置断点,逐步执行代码:
Launch C:\MyApp\app.exe for debugging
然后使用 run_windbg_cmd 为了控制执行:
bp main — Set breakpoint at main
g — Continue execution
p — Step over
t — Step into
k — Stack trace
dv — View local variables
lsa . — Show source at current location
这 launch_debug 工具支持可选参数:
| 参数 | 类型 | 说明 |
|---|---|---|
program_path |
string | 目标程序的路径(必需) |
arguments |
string[] | 命令行参数 |
working_directory |
string | 工作目录 |
symbols_path |
string | PDB符号搜索路径 |
source_path |
string | 源代码级调试的源文件路径 |
include_stack_trace |
boolean | 包括初始堆栈跟踪 |
include_modules |
boolean | 包含已加载的模块列表 |
关闭会话
Close the debug session for C:\MyApp\app.exe
故障排除
未找到CDB --通过安装 winget install Microsoft.WinDbg 或设置 CDB_PATH 致你的 cdb.exe 位置。
符号未加载 --设置 _NT_SYMBOL_PATH.建议: SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols
命令超时 --增加与 --timeout 60 或 MCP_WINDBG_TIMEOUT=60。大型转储和符号下载可能需要更高的 MCP_WINDBG_INIT_TIMEOUT.
Web转储调试器
该项目还运送了一艘 基于web的崩溃转储分析服务 (web-dump-debugger)它提供了一个浏览器UI,用于上传、分析和报告崩溃转储。
特性
- 网络上传 --上传
.zip,.7z,或.tar.gz通过浏览器包含转储文件的存档 - 自动提取 --提取并扫描档案
.dmp,.pdb,以及源文件 - LLM动力分析 --使用相同
mcp_client.py编排作为GitHub Actions工作流 - 实时进度 --服务器发送事件(SSE)将实时分析进度流式传输到浏览器
- HTML报告 --Markdown分析输出呈现为HTML,语法突出显示
- 速率限制 --基于滑动窗口算法的IP上传速率限制
- 会话管理 --具有自动清理功能的隔离式会话工作区
快速开始
# Build both binaries
cargo build --release
# Create a config file (edit llm.api_key first)
cp config.example.toml config.toml
# Start the web server
./target/release/web-dump-debugger --config config.toml
然后打开 http://localhost:8080 在您的浏览器中。
配置
看 config.example.toml 对于所有选项。服务器支持TOML文件和环境变量配置。
API终点
| 方法 | 路径 | 描述 |
|---|---|---|
GET |
/ |
上传表单HTML页面 |
POST |
/upload |
上传崩溃转储存档(多部分/表单数据) |
GET |
/progress/:id |
SSE进度流 |
GET |
/report/:id |
HTML报告页面 |
GET |
/download/:id |
下载原始Markdown报告 |
GET |
/health |
健康检查(JSON) |
部署
看 docs/WEB_DEPLOYMENT.md 用于生产部署指导。
相关
- mcp windbg(Python) --原始Python实现
- 模型上下文协议
- Winwei文档
