项目简介

LLDB-MCP 是一个将 LLDB 调试器与 Model Context Protocol (MCP) 集成的工具。它允许像 Claude 这样的 LLM 客户端启动、控制和交互 LLDB 调试会话,实现 AI 辅助的调试工作流程。通过自然语言指令,用户可以通过 LLM 客户端远程控制 LLDB,进行程序调试。

主要功能点

  • LLDB 会话管理:支持创建、列出和终止 LLDB 调试会话。
  • 程序加载与附加:可以加载可执行文件、附加到正在运行的进程或加载 core dump 文件进行调试。
  • 执行控制:支持程序运行、继续、单步执行、步过、完成当前函数等调试控制命令。
  • 断点与观察点:允许设置和管理断点和观察点,支持条件断点。
  • 内存与寄存器检查:可以检查内存内容、打印变量值、查看寄存器信息。
  • 调用栈分析:支持查看和分析程序调用栈信息。
  • 线程管理:支持列出和选择线程进行调试。
  • 执行任意 LLDB 命令:允许执行任何 LLDB 命令,提供灵活的调试能力。

安装步骤

  1. 克隆仓库

    打开终端,执行以下命令克隆仓库到本地:

    git clone https://github.com/stass/lldb-mcp.git
    cd lldb-mcp
  2. 安装依赖

    确保你的系统已安装 Python 3.7 或更高版本以及 pip。然后,在仓库目录下执行以下命令安装所需的 Python 库:

    pip install mcp

    确保已安装 LLDB:LLDB-MCP 依赖于系统已安装 LLDB 调试器。如果尚未安装,请根据你的操作系统进行安装。

  3. 配置 MCP 客户端

    以 Claude 桌面应用为例,你需要配置 MCP 服务器信息,以便 Claude 可以连接到 LLDB-MCP 服务器。打开 Claude 的 MCP 配置,添加以下 JSON 配置:

    "mcpServers": {
      "lldb-mcp": {
        "command": "python3",
        "args": ["/path/to/lldb-mcp/lldb_mcp.py"],
        "disabled": false
      }
    }
    • server name (服务器名称): 'lldb-mcp' - 客户端用于标识和调用此服务器的名称。
    • command (命令): 'python3' - 启动服务器的命令,确保 'python3' 命令指向正确的 Python 解释器。
    • args (参数): '["/path/to/lldb-mcp/lldb_mcp.py"]' - 启动服务器的参数,你需要将 '/path/to/lldb-mcp/lldb_mcp.py' 替换为实际 'lldb_mcp.py' 脚本在你的系统中的绝对路径。例如,如果你的 'lldb-mcp' 仓库克隆在 '/Users/yourname/lldb-mcp' 目录下,则应修改为 '["/Users/yourname/lldb-mcp/lldb_mcp.py"]'。
    • disabled (禁用): 'false' - 设置为 'false' 表示启用该服务器,'true' 表示禁用。

基本使用方法

配置完成后,你就可以在 MCP 客户端(如 Claude)中使用自然语言指令与 LLDB-MCP 服务器交互,进行程序调试。以下是一些基本的使用示例:

  1. 启动新的 LLDB 会话: 例如,在 Claude 中输入 “Start a new LLDB session”。
  2. 加载程序: 例如,输入 “Load the program '/path/to/executable'”,将 '/path/to/executable' 替换为你要调试的程序路径。
  3. 设置断点: 例如,输入 “Set a breakpoint at main” 在 'main' 函数入口处设置断点。
  4. 运行程序: 例如,输入 “Run the program” 运行已加载的程序。
  5. 检查变量: 例如,输入 “Print the value of variable 'count'” 打印名为 'count' 的变量的值。
  6. 单步执行: 例如,输入 “Step over the next line” 单步执行下一行代码。
  7. 查看调用栈: 例如,输入 “Show backtrace” 查看当前的函数调用栈。
  8. 终止 LLDB 会话: 例如,输入 “Terminate the LLDB session” 结束当前的调试会话。

更多详细命令和使用方法,请参考仓库 README 文档中 “Supported Commands” 和 “Example Commands” 部分。

信息

分类

开发者工具