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 Command execution timeout (default: 30)
--init-timeout 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.
相关
- mcp windbg(Python) --原始Python实现
- 模型上下文协议
- Winwei文档
