Token导航 LogoToken导航

MCP Server · 开发工具

MCP Crash Analyzer

一个基于GDB的自动化程序崩溃分析工具,提供寄存器状态、内存快照、反汇编和堆栈跟踪等详细调试信息。

stdio官方级别未说明来源级核验工具 8
PythonClaude调试工具Cline

快速开始

作者 / 组织
maglu
提供方
maglu

工具数量

8

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Crash Analyzer 属于开发工具类 MCP Server,公开资料标注 8 个工具,通过stdio 本地进程接入,适配 Claude、Cline,有可以直接复制的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install -r requirements.txt

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 8 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

MCP碰撞分析仪

使用GDB进行自动崩溃分析的模型上下文协议(MCP)服务器。

引言

此MCP工具分析程序崩溃,并提供详细的调试见解,包括寄存器状态、内存快照、反汇编和堆栈跟踪。

它是作为一项学习练习而创建的,旨在探索模型上下文协议(MCP)的工作原理,主要是在人工智能代理的帮助下构建的。该工具已经在一些特定的碰撞场景中进行了测试,并产生了有希望的结果,尽管它还没有在更复杂的情况下得到深入验证。

我不打算继续积极开发,但如果你遇到问题或有有趣的功能想法,请随时在“问题”选项卡中打开工单——如果时间允许,我会看看。贡献、反馈或分叉总是受欢迎的。

特性

🔍 自动碰撞检测 -运行程序并自动检测崩溃\ 📊 综合分析 -捕获信号、位置、回溯、寄存器、内存\ 🎯 智能拆解 -带碰撞位置标记的全功能拆卸\ 💾 内存检查 -以十六进制/ASCII格式读取任何地址的内存\ ⚙️ 注册状态 -崩溃时完成CPU寄存器快照\ 🏗️ 系统信息 -架构、调试符号、端序检测\ ⚡ 基于会话 -加载一次,查询多次进行详细分析

快速开始

安装

# Install dependencies
pip install -r requirements.txt

配置

添加到MCP设置文件中:

VS代码与Cline (~/.config/Code/User/mcp.json):

{
  "mcpServers": {
    "crash-analyzer": {
      "command": "python3",
      "args": ["/absolute/path/to/mcp_crash_analyzer.py"]
    }
  }
}

克劳德桌面 (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "crash-analyzer": {
      "command": "python3",
      "args": ["/absolute/path/to/mcp_crash_analyzer.py"]
    }
  }
}

环境变量

  • MCP_CRASH_ANALYZER_LOG -自定义日志文件路径(可选)

- 违约: ~/.cache/mcp_crash_analyzer.log - 例子: export MCP_CRASH_ANALYZER_LOG=/var/log/crash_analyzer.log

用法

基本工作流程

  1. 加载并运行 一个程序直到崩溃:
load_and_run("/path/to/program", args=["arg1"], timeout=10)
  1. 分析坠机事件:
get_disassembly_function()  # See crash instruction
get_registers()             # Check CPU state
read_memory("$rsp", 64)     # Inspect memory
  1. 完成后关闭:
close_session()

可用工具

核心工具
  • load_and_run(binary_path, args=None, timeout=10)\

加载并运行程序,直到崩溃或退出

  • get_registers(register_names=None)\

在崩溃时获取CPU寄存器值

  • get_disassembly_function()\

完全拆卸碰撞功能

  • get_disassembly_range(start_address, end_address, mode=0)\

分解特定地址范围

  • read_memory(address, size, format="hex")\

读取任何地址的内存

  • get_system_info()\

获取架构和调试信息

  • get_full_report()\

获取完整的碰撞报告

  • close_session()\

关闭GDB会话

实例分析

# 1. Run program
result = load_and_run("/path/to/crashed_program")
# {"crashed": true, "signal": "SIGSEGV", ...}

# 2. See where it crashed
disasm = get_disassembly_function()
# "0x12345: mov (%rax),%ebx ← CRASH"

# 3. Check registers
regs = get_registers(["rax", "rbx", "rsp"])
# {"rax": "0x0", "rbx": "0x7fff...", ...}

# 4. Read stack
mem = read_memory("$rsp", 128, "both")

# 5. Close
close_session()

输出示例

{
  "crashed": true,
  "signal": {
    "name": "SIGSEGV",
    "meaning": "Segmentation fault"
  },
  "location": {
    "function": "process_data",
    "address": "0x555555555234",
    "file": "main.c",
    "line": "42"
  },
  "disassembly": [
    "0x555555555230: mov    %rdi,%rax",
    "0x555555555234: mov    (%rax),%edx ← CRASH",
    "0x555555555236: add    $0x1,%edx"
  ]
}

常见信号类型

在分析崩溃时,您会遇到以下常见信号:

  • 西格夫 -分段错误(无效内存访问、空指针解引用)
  • 信号中止 -中止信号(断言失败, abort() 呼叫)
  • 浮点异常 -浮点异常(除零,数学运算无效)
  • 非法指令 -非法指令(代码损坏、架构错误)
  • SIGBUS -总线错误(内存访问未对齐)
  • SIGSYS -系统调用错误

需求

  • Python 3.8+
  • GDB(GNU调试器)
  • pygdbmi -Python GDB机器接口
  • fastmcp -快速MCP服务器框架

用例

  • 自动化测试:检测和分析CI/CD管道中的崩溃
  • 缺陷类选:生成具有完整上下文的详细碰撞报告
  • 法医学:生产崩溃的事后调试
  • 证券分析:分析漏洞和漏洞
  • 学习:研究汇编,了解程序崩溃的原因
  • 发展:无需手动GDB会话即可快速进行崩溃分析

碰撞分析工作流程

崩溃分析器提供有关程序故障的详细信息:

什么被捕获

  1. 信号信息 -碰撞类型及其原因
  2. 碰撞位置 -精确的函数、文件、行和地址
  3. 回溯 -完整的调用堆栈,显示程序是如何到达崩溃的
  4. 寄存器值 -崩溃时的CPU状态(用于低级调试)
  5. 局部变量 -崩溃函数中的变量值
  6. 反汇编 -碰撞地址周围的装配说明
  7. 内存状态 -堆叠和堆检查
  8. 控制台输出 -崩溃前的所有程序输出

分析模式

基于会话(高级):

  • 使用以下命令加载程序一次 load_and_run()
  • 使用单个工具查询详细信息
  • 对检查内容进行精细控制
  • 最适合深度调试

完整报告(快速):

  • 立即获取所有内容 get_full_report()
  • 在一次通话中完成碰撞分析
  • 最适合自动报告

运作原理

  1. 用途 pygdbmi 通过机器接口控制GDB
  2. 在加载和分析之间保持会话状态
  3. 在崩溃时刻捕获寄存器快照
  4. 提供多种分析视图(反汇编、内存、寄存器)

局限性

  • 平台:仅限Linux/Unix(需要GDB)
  • 执行:程序必须具有适当的权限才能执行
  • 可重复性:碰撞必须是可再现的(确定性)
  • 调试信息:源代码行信息需要调试符号(-g 旗帜)
  • 内核转储:无法直接分析核心转储(请运行程序)
  • 单次碰撞:仅分析第一次碰撞(碰撞后不继续)
  • 优化:高度优化的代码可能包含不完整的变量信息

最佳实践

  1. 使用调试符号编译:使用 -g 源线信息标志
  2. 调试期间禁用优化:使用 -O0 保存可变信息
  3. 设置适当的超时:增加慢速启动程序的超时时间
  4. 检查权限:确保二进制文件具有执行权限(chmod +x)
  5. 使用绝对路径:提供二进制文件和源文件的完整路径

🐛 故障排除

问题解决方案
导入错误pip3 install pygdbmi fastmcp
未找到GDBsudo apt install gdb
会话已在运行呼叫 close_session() 首先
超时错误增加超时参数 load_and_run()
无调试符号使用编译 -g 标志: gcc -g -o program program.c
缺少源信息确保源文件可以在原始路径上访问
回溯不完整编译时不进行优化: gcc -g -O0 -o program program.c
权限被拒绝使二进制文件可执行: chmod +x program
未检测到崩溃检查程序是否需要输入或增加超时
需要调试日志检查 ~/.cache/mcp_crash_analyzer.log 查看详细日志

📚 资源

  • pygdbmi: https://github.com/cs01/pygdbmi
  • GDB/MI: https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html
  • 主控程序: https://modelcontextprotocol.io/

许可证

MIT许可证-免费使用和修改

作者

马格努斯·卢切斯

______________________________________________________________________

备注:此工具自动化GDB进行崩溃分析。对于交互式调试,直接使用GDB。

工具与能力

工具数量

8

资源数量

0

提示词数量

0

能力标签

崩溃分析Python本地部署调试工具程序错误检测内存检查反汇编

支持客户端

ClaudeCline

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 8 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cline,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Crash Analyzer

MCP World · 本页

8stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Crash Analyzer 怎么安装?

公开资料给出的安装命令是 pip install -r requirements.txt,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Crash Analyzer 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

MCP Crash Analyzer 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Crash Analyzer 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP Crash Analyzer 支持哪些客户端?

公开资料标注支持 Claude、Cline;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP