LLDB-MCP 是一个将 LLDB 调试器与 Claude 的模型上下文协议(MCP)集成的工具。通过该集成,Claude 可以直接启动、控制和交互 LLDB 调试会话,从而支持 AI 辅助的调试工作流。
用途
LLDB-MCP 旨在让 AI 助手(如 Claude)能够通过自然语言操作 LLDB 调试器,用于二进制和核心文件分析、调试和反汇编。它适用于需要 AI 辅助进行程序调试、崩溃分析、内存检查等场景。
主要能力
该工具提供了一套全面的命令,涵盖以下方面:
- 启动和管理 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 交互。
示例命令
以下是通过 Claude 与 LLDB-MCP 交互的示例:
- "Start a new LLDB session"
- "Load the program '/path/to/executable'"
- "Set a breakpoint at main"
- "Run the program"
- "Show backtrace"
- "Print the value of variable 'count'"
- "Step over the next line"
- "Examine memory at address 0x1000"
- "Show register values"
- "Continue execution"
- "Kill the process"
- "Terminate the LLDB session"
支持的命令
会话管理
lldb_start:启动新的 LLDB 会话lldb_terminate:终止 LLDB 会话lldb_list_sessions:列出所有活动的 LLDB 会话
程序加载
lldb_load:将程序加载到 LLDBlldb_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 使用生成的程序调试该问题。
使用提示
- 当需要执行没有专用函数的 LLDB 命令时,使用
lldb_command。 - 启动服务器时使用
--debug标志启用调试模式以获取详细日志。 - 服务器关闭时会自动清理会话。
- 每个会话都有唯一的 ID——执行命令时确保使用正确的 ID。
要求
- 系统上已安装 LLDB
- 支持 MCP 的 Claude 桌面应用
故障排除
- 如果 LLDB 命令超时,请检查 LLDB 是否正确安装。
- 启动新会话时验证 LLDB 的路径。
- 附加到进程时检查权限问题。
- 如果命令未正确执行,请查看调试日志。