Integrations
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
- Clonar el repositorio:Copy
- Instalar dependencias:Copy
- 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
- Iniciar una nueva sesión de LLDB
- Cargar un programa
- Establecer puntos de interrupción
- Ejecutar el programa
- Inspeccionar variables y memoria
- Controlar la ejecución (continuar, paso, siguiente, etc.)
- 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 LLDBlldb_terminate
: Terminar una sesión LLDBlldb_list_sessions
: enumera todas las sesiones LLDB activas
Carga del programa
lldb_load
: Cargar un programa en LLDBlldb_attach
: Adjuntar a un proceso en ejecuciónlldb_load_core
: Cargar un archivo de volcado de núcleo
Control de ejecución
lldb_run
: Ejecuta el programa cargadolldb_continue
: Continuar la ejecución del programalldb_step
: Pasar a la siguiente línea o instrucciónlldb_next
: Pasar por alto las llamadas de funciónlldb_finish
: Ejecutar hasta que la función actual regreselldb_kill
: Mata el proceso en ejecución
Puntos de interrupción y puntos de vigilancia
lldb_set_breakpoint
: Establecer un punto de interrupciónlldb_breakpoint_list
: Lista todos los puntos de interrupciónlldb_breakpoint_delete
: Eliminar un punto de interrupciónlldb_watchpoint
: establece un punto de vigilancia en una variable o dirección de memoria
Inspección
lldb_backtrace
: Mostrar la pila de llamadaslldb_print
: Imprimir el valor de la expresiónlldb_examine
: Examinar la memorialldb_info_registers
: Mostrar registroslldb_frame_info
: Obtener información detallada sobre un marco de pilalldb_disassemble
: Desensamblar códigolldb_process_info
: Obtener información sobre el proceso actual
Gestión de subprocesos
lldb_thread_list
: enumera todos los hilos en el proceso actuallldb_thread_select
: Selecciona un hilo específico
Misceláneas
lldb_command
: Ejecuta un comando LLDB arbitrariolldb_expression
: evalúa una expresión en el marco actuallldb_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:
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
This server cannot be installed
Un servidor MCP para LLDB que permite el análisis, la depuración y el desmontaje automáticos de aplicaciones nativas.