LLDB-MCP

BSD 2-Clause "Simplified" License
1

Integrations

  • Provides tools for analyzing and debugging buffer overflow issues in programs through LLDB integration

  • Enables creation and management of LLDB debugging sessions through Python, with support for program loading, execution control, breakpoint management, and memory inspection

LLDB-MCP

Mírelo en acción aquí, depurando automáticamente un desbordamiento de búfer: https://x.com/full\_duplex/status/1904770477698277847

Descripción general

LLDB-MCP es una herramienta que integra el depurador de LLDB con el Protocolo de Contexto de Modelo (MCP) de Claude. Esta integración permite a Claude iniciar, controlar e interactuar directamente con las sesiones de depuración de LLDB, lo que habilita flujos de trabajo de depuración asistidos por IA.

La herramienta proporciona un conjunto completo de comandos para trabajar con LLDB, incluidos:

  • Iniciar y administrar sesiones LLDB
  • Cargando programas para depuración
  • Establecer puntos de interrupción y puntos de vigilancia
  • Controlar la ejecución del programa
  • Examinando la memoria, los registros y las variables
  • Análisis de seguimientos de pila y del estado del programa

Características

  • Crear y administrar múltiples sesiones de depuración de LLDB
  • Cargar ejecutables y adjuntarlos a procesos en ejecución
  • Cargar archivos de volcado de núcleo para análisis post mortem
  • Ejecutar comandos LLDB arbitrarios
  • Control detallado sobre la ejecución del programa
  • Examen y desmontaje de la memoria
  • Inspección del marco de la pila y del hilo

Instalación

  1. Clonar el repositorio:
    git clone https://github.com/stass/lldb-mcp.git cd lldb-mcp
  2. Instalar dependencias:
    pip install mcp
  3. Configurar Claude para utilizar el servidor LLDB-MCP:
    • Abra la configuración de la aplicación de escritorio Claude
    • Agregue lo siguiente a su configuración de MCP: GXP3

Uso

Una vez instalado y configurado, puedes interactuar con LLDB a través de Claude utilizando lenguaje natural.

Flujo de trabajo básico

  1. Iniciar una nueva sesión de LLDB
  2. Cargar un programa
  3. Establecer puntos de interrupción
  4. Ejecutar el programa
  5. Inspeccionar variables y memoria
  6. Controlar la ejecución (continuar, paso, siguiente, etc.)
  7. Terminar la sesión cuando haya terminado

Comandos de ejemplo

A continuación se muestran algunos ejemplos de cómo interactuar con LLDB-MCP a través de Claude:

  • "Iniciar una nueva sesión de LLDB"
  • "Cargar el programa '/ruta/al/ejecutable'"
  • "Establecer un punto de interrupción en el servidor principal"
  • "Ejecutar el programa"
  • "Mostrar seguimiento inverso"
  • "Imprimir el valor de la variable 'count'"
  • "Pasa a la siguiente línea"
  • "Examinar la memoria en la dirección 0x1000"
  • "Mostrar valores de registro"
  • "Continuar la ejecución"
  • "Matar el proceso"
  • "Terminar la sesión LLDB"

Comandos compatibles

Gestión de sesiones

  • lldb_start : Iniciar una nueva sesión LLDB
  • lldb_terminate : Terminar una sesión LLDB
  • lldb_list_sessions : enumera todas las sesiones LLDB activas

Carga del programa

  • lldb_load : Cargar un programa en LLDB
  • lldb_attach : Adjuntar a un proceso en ejecución
  • lldb_load_core : Cargar un archivo de volcado de núcleo

Control de ejecución

  • lldb_run : Ejecuta el programa cargado
  • lldb_continue : Continuar la ejecución del programa
  • lldb_step : Pasar a la siguiente línea o instrucción
  • lldb_next : Pasar por alto las llamadas de función
  • lldb_finish : Ejecutar hasta que la función actual regrese
  • lldb_kill : Mata el proceso en ejecución

Puntos de interrupción y puntos de vigilancia

  • lldb_set_breakpoint : Establecer un punto de interrupción
  • lldb_breakpoint_list : Lista todos los puntos de interrupción
  • lldb_breakpoint_delete : Eliminar un punto de interrupción
  • lldb_watchpoint : establece un punto de vigilancia en una variable o dirección de memoria

Inspección

  • lldb_backtrace : Mostrar la pila de llamadas
  • lldb_print : Imprimir el valor de la expresión
  • lldb_examine : Examinar la memoria
  • lldb_info_registers : Mostrar registros
  • lldb_frame_info : Obtener información detallada sobre un marco de pila
  • lldb_disassemble : Desensamblar código
  • lldb_process_info : Obtener información sobre el proceso actual

Gestión de subprocesos

  • lldb_thread_list : enumera todos los hilos en el proceso actual
  • lldb_thread_select : Selecciona un hilo específico

Misceláneas

  • lldb_command : Ejecuta un comando LLDB arbitrario
  • lldb_expression : evalúa una expresión en el marco actual
  • lldb_help : Obtenga ayuda para los comandos LLDB

Programa de ejemplo

example/overflow.c contiene un programa de C de ejemplo que provoca un desbordamiento de búfer con ciertos argumentos. Compílelo con cc overflow.c y pídale a Claude que depure el problema con el programa resultante:

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?

Consejos de depuración

  • Utilice lldb_command cuando necesite ejecutar comandos LLDB que no tengan una función dedicada
  • Habilite el modo de depuración con el indicador --debug al iniciar el servidor para obtener un registro detallado
  • Las sesiones se limpian automáticamente cuando se apaga el servidor
  • Cada sesión tiene una identificación única: asegúrese de utilizar la identificación correcta al ejecutar comandos

Requisitos

  • Python 3.7+
  • LLDB instalado en el sistema
  • Aplicación de escritorio Claude compatible con MCP

Solución de problemas

  • Si los comandos LLDB se agotan, verifique que LLDB esté instalado correctamente
  • Verificar la ruta a LLDB al iniciar una nueva sesión
  • Compruebe si hay problemas de permisos al adjuntar a procesos
  • Revisar los registros de depuración si los comandos no se ejecutan correctamente

Licencia

BSD de 2 cláusulas

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor MCP para LLDB que permite el análisis, la depuración y el desmontaje automáticos de aplicaciones nativas.

  1. Overview
    1. Features
      1. Installation
        1. Usage
          1. Basic Workflow
          2. Example Commands
        2. Supported Commands
          1. Session Management
          2. Program Loading
          3. Execution Control
          4. Breakpoints and Watchpoints
          5. Inspection
          6. Thread Management
          7. Miscellaneous
        3. Example program
          1. Debugging Tips
            1. Requirements
              1. Troubleshooting
                1. License
                  ID: 9i6b17n41i