关于 LLDB-MCP
LLDB-MCP 是一个 MCP 服务,将 LLDB 调试器接入 MCP,使 AI 客户端能够启动、控制并检查 LLDB 调试会话。适合需要借助 AI 辅助调试本地程序的开发者,例如定位缓冲区溢出等崩溃问题。
主要功能
- 01管理多个 LLDB 调试会话
- 02加载可执行文件、附加进程或加载 core dump
- 03设置断点与观察点
- 04控制程序执行(继续、单步、步过、结束函数)
- 05检查调用栈、内存、寄存器与变量
- 06支持执行任意 LLDB 命令
适用场景
- 01调试因特定输入而崩溃的 C 程序
- 02分析 core dump 以进行事后排查
- 03通过自然语言逐步检查变量与内存
MCP 相关
该项目作为 MCP 服务运行,向 MCP 客户端(如 Claude 桌面应用)暴露 lldb_start、lldb_run、lldb_backtrace 等工具,用于操作 LLDB 会话。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
LLDB-MCP

在此处查看它如何自动调试缓冲区溢出:https://x.com/full_duplex/status/1904770477698277847
概述
LLDB-MCP 是一款将 LLDB 调试器与 Claude 的 Model Context Protocol(MCP)集成的工具。通过此集成,Claude 可以直接启动、控制并与 LLDB 调试会话交互,从而实现 AI 辅助调试工作流。
该工具提供了一套全面的命令,用于使用 LLDB,包括:
- 启动和管理 LLDB 会话
- 加载待调试程序
- 设置断点和监视点
- 控制程序执行
- 检查内存、寄存器和变量
- 分析堆栈跟踪和程序状态
功能
- 创建和管理多个 LLDB 调试会话
- 加载可执行文件并附加到正在运行的进程
- 加载核心转储文件以进行事后分析
- 执行任意 LLDB 命令
- 精细控制程序执行
- 检查内存并反汇编
- 检查线程和堆栈帧
安装
-
克隆代码库:
git clone https://github.com/stass/lldb-mcp.git cd lldb-mcp -
安装依赖项:
pip install mcp -
配置 Claude 以使用 LLDB-MCP 服务:
- 打开 Claude 桌面应用的配置
- 将以下内容添加到 MCP 配置中:
"mcpServers": { "lldb-mcp": { "command": "python3", "args": ["/path/to/lldb-mcp/lldb_mcp.py"], "disabled": false } }
使用方法
安装并配置完成后,你可以使用自然语言通过 Claude 与 LLDB 交互。
基本工作流
- 启动新的 LLDB 会话
- 加载程序
- 设置断点
- 运行程序
- 检查变量和内存
- 控制执行(继续、步进、下一步等)
- 完成后终止会话
命令示例
以下是通过 Claude 与 LLDB-MCP 交互的一些示例:
- “启动新的 LLDB 会话”
- “加载程序 '/path/to/executable'”
- “在 main 处设置断点”
- “运行程序”
- “显示回溯”
- “打印变量 'count' 的值”
- “跨过下一行”
- “检查地址 0x1000 处的内存”
- “显示寄存器值”
- “继续执行”
- “终止进程”
- “终止 LLDB 会话”
支持的命令
会话管理
lldb_start:启动新的 LLDB 会话lldb_terminate:终止 LLDB 会话lldb_list_sessions:列出所有活动的 LLDB 会话
程序加载
lldb_load:将程序加载到 LLDB 中lldb_attach:附加到正在运行的进程lldb_load_core:加载核心转储文件
执行控制
lldb_run:运行已加载的程序lldb_continue:继续执行程序lldb_step:步进到下一行或指令lldb_next:跨过函数调用lldb_finish:执行直至当前函数返回lldb_kill:终止正在运行的进程
断点和监视点
lldb_set_breakpoint:设置断点lldb_breakpoint_list:列出所有断点lldb_breakpoint_delete:删除断点lldb_watchpoint:在变量或内存地址上设置监视点
检查
lldb_backtrace:显示调用栈lldb_print:打印表达式的值lldb_examine:检查内存lldb_info_registers:显示寄存器lldb_frame_info:获取有关堆栈帧的详细信息lldb_disassemble:反汇编代码lldb_process_info:获取当前进程的信息
线程管理
lldb_thread_list:列出当前进程中的所有线程lldb_thread_select:选择特定线程
其他
lldb_command:执行任意 LLDB 命令lldb_expression:在当前帧中计算表达式lldb_help:获取 LLDB 命令帮助
示例程序
example/overflow.c 包含一个示例 C 程序,使用特定参数时会导致缓冲区溢出。
使用 cc overflow.c 编译,然后让 Claude 调试生成的程序中的问题:
I'm trying to debug my program a.out that is crashing with certain arguments, e.g. when I pass "hello".
Can you help me debug it?
调试提示
- 需要执行没有专用函数的 LLDB 命令时,请使用
lldb_command - 启动服务时使用
--debug标志启用调试模式,以获取详细日志 - 服务关闭时会自动清理会话
- 每个会话都有唯一 ID — 执行命令时请确保使用正确的 ID
要求
- Python 3.7+
- 系统已安装 LLDB
- 支持 MCP 的 Claude 桌面应用
故障排除
- 如果 LLDB 命令超时,请检查 LLDB 是否已正确安装
- 启动新会话时,请确认 LLDB 的路径
- 检查附加到进程时是否存在权限问题
- 如果命令无法正确执行,请查看调试日志
许可证
BSD 2-clause
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。