
在这里查看自动调试缓冲区溢出的实际操作:https://x.com/full_duplex/status/1904770477698277847
LLDB-MCP 是一个将 LLDB 调试器与 Claude 的模型上下文协议 (MCP) 集成的工具。这种集成允许 Claude 直接启动、控制和与 LLDB 调试会话进行交互,从而实现 AI 辅助的调试工作流程。
该工具提供了一整套用于处理 LLDB 的命令,包括:
克隆仓库:
git clone https://github.com/stass/lldb-mcp.git
cd lldb-mcp
安装依赖项:
pip install mcp
配置 Claude 使用 LLDB-MCP 服务器:
"mcpServers": {
"lldb-mcp": {
"command": "python3",
"args": ["/path/to/lldb-mcp/lldb_mcp.py"],
"disabled": false
}
}
安装并配置后,您可以使用自然语言通过 Claude 与 LLDB 进行交互。
这里有一些如何通过 Claude 与 LLDB-MCP 进行交互的例子:
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 调试生成的程序:
我试图调试我的程序 a.out,当传递 "hello" 参数时它会崩溃。
你能帮我调试吗?
lldb_command--debug 标志启用详细日志记录BSD 2条款