Communitygithub.com

cli-anything-lldb

Depuración de LLDB con estado a través de la API Python de LLDB.

¿Qué es cli-anything-lldb?

Esta habilidad proporciona una interfaz de línea de comandos (CLI) para ejecutar flujos de trabajo de depuración con LLDB de manera estructurada y con salida JSON. Está diseñada para agentes de IA, editores y desarrolladores que necesitan controlar LLDB de forma programática, ya sea mediante comandos separados o a través de un servidor Debug Adapter Protocol (DAP) completo. Soporta la creación de objetivos de depuración, lanzamiento de procesos o adjunción por PID/nombre, gestión de puntos de interrupción, inspección de hilos, marcos, variables locales, evaluación de expresiones y lectura de memoria. Incluye un modo REPL interactivo con estado de sesión persistente y un servidor DAP formal que habla el protocolo estándar de Content-Length, ideal para clientes de IA o editores que necesitan un ciclo de vida de depurador real. Además, ofrece reglas de parada configurables (stop rules) para filtrar automáticamente paradas internas o de terceros (como shader-JIT) en aplicaciones GUI, mejorando la experiencia del agente.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HKUDS/CLI-Anything/tree/main/skills/cli-anything-lldb

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Habilidad CLI de LLDB

Utiliza esta CLI para ejecutar flujos de trabajo de depuración estructurados con LLDB y obtener salida JSON.

Capacidades

  • Crear objetivo de depuración desde la ruta de un ejecutable
  • Lanzar un proceso o adjuntar por PID/nombre
  • Gestionar puntos de interrupción (establecer/listar/eliminar/habilitar/deshabilitar)
  • Inspeccionar hilos, marcos, variables locales y seguimiento de pila
  • Evaluar expresiones en el marco actual
  • Leer/encontrar memoria del proceso
  • Cargar archivos core dump
  • REPL interactivo con estado de sesión persistente
  • Servidor formal del Protocolo de Adaptador de Depuración (DAP) para clientes de IA/editores

Comandos rápidos

cli-anything-lldb --json target create --exe /path/to/exe
cli-anything-lldb --json process launch --arg foo --arg bar
cli-anything-lldb --json breakpoint set --function main
cli-anything-lldb --json breakpoint set --function PluginEntry --allow-pending
cli-anything-lldb --json process continue
cli-anything-lldb --json process interrupt
cli-anything-lldb --json thread backtrace --limit 20
cli-anything-lldb --json frame locals
cli-anything-lldb --json expr "myVar"
cli-anything-lldb --json memory read --address 0x1000 --size 64
cli-anything-lldb --json session close

Protocolo de Adaptador de Depuración (DAP)

Utiliza el punto de entrada DAP cuando un cliente de IA necesita un ciclo de vida de adaptador de depuración real en lugar de ejecutar comandos CLI separados:

cli-anything-lldb-dap
cli-anything-lldb-dap --profile /path/to/stop-rules.json

o:

cli-anything-lldb dap
cli-anything-lldb dap --profile /path/to/stop-rules.json

El servidor DAP se comunica mediante tramas Content-Length sobre stdio y debe tener stdout exclusivo. No imprimas registros en stdout a su alrededor. Las solicitudes admitidas incluyen initialize, launch, attach, configurationDone, setBreakpoints, setFunctionBreakpoints, threads, stackTrace, scopes, variables, setVariable, evaluate, continue, pause, next, stepIn, stepOut, source, loadedSources, readMemory, modules, exceptionInfo, disassemble y disconnect.

Las variables DAP pueden exponer referencias secundarias para structs/clases/arrays. Utiliza setVariable solo mientras esté detenido; LLDB puede rechazar escrituras en valores optimizados o de solo lectura.

Para procesos de larga duración con GUI, DAP continue no es bloqueante desde el punto de vista del cliente: el adaptador envía la respuesta y el evento continued primero, luego espera a LLDB en un hilo en segundo plano. DAP pause utiliza la interrupción asíncrona de LLDB. Si un agente necesita cambiar puntos de interrupción mientras el depurador está en ejecución, el adaptador interrumpe primero y espera un estado detenido antes de mutar los puntos de interrupción de LLDB; si el objetivo no se detiene a tiempo, reintenta después de un ciclo explícito pause/stopped.

Para aplicaciones GUI que se detienen en puntos de interrupción internos de inicio o shader-JIT, launch y attach aceptan el argumento booleano no estándar autoContinueInternalBreakpoints. Actívalo solo cuando esas paradas internas sean ruido para la tarea; el adaptador emite un evento output antes de continuar automáticamente. Para ruido específico del objetivo, prefiere reglas de parada estructuradas mediante stopRules en línea o un archivo JSON externo stopRuleProfile/--profile. Las reglas pueden coincidir por reason, module, function y/o regex, y luego stop con metadatos claros cliAnythingStop.origin o continue automáticamente. Utiliza perfiles para aplicaciones como C4D para que sus trampas shader-JIT/inicio de NVIDIA residan fuera del adaptador genérico.

Los eventos DAP stopped incluyen body.cliAnythingStop.origin: manualPause para una solicitud de pausa del cliente, internalTrap para una regla interna coincidente y debuggee para paradas ordinarias del programa. Los procesos existentes de cli-anything-lldb-dap no recargan en caliente nuevo código ni contenido de perfil; reinicia el adaptador y vuelve a adjuntar o relanzar antes de esperar que se apliquen nuevas reglas.

Grupos de comandos

target

cli-anything-lldb --json target create --exe /path/to/exe [--arch x86_64]
cli-anything-lldb --json target info

process

cli-anything-lldb --json process launch [--arg ARG ...] [--env KEY=VALUE ...] [--cwd DIR] [--stop-at-entry]
cli-anything-lldb --json process attach --pid 1234
cli-anything-lldb --json process attach --name myapp --wait-for
cli-anything-lldb --json process continue
cli-anything-lldb --json process interrupt
cli-anything-lldb --json process detach
cli-anything-lldb --json process info

breakpoint

cli-anything-lldb --json breakpoint set --function main
cli-anything-lldb --json breakpoint set --file main.c --line 42 --condition "i > 10"
cli-anything-lldb --json breakpoint set --function LateLoadedSymbol --allow-pending
cli-anything-lldb --json breakpoint list
cli-anything-lldb --json breakpoint delete --id 1
cli-anything-lldb --json breakpoint enable --id 1
cli-anything-lldb --json breakpoint disable --id 1

thread / frame / step

cli-anything-lldb --json thread list
cli-anything-lldb --json thread select --id 11111
cli-anything-lldb --json thread backtrace --limit 50
cli-anything-lldb --json frame select --index 0
cli-anything-lldb --json frame info
cli-anything-lldb --json frame locals
cli-anything-lldb --json step over
cli-anything-lldb --json step into
cli-anything-lldb --json step out

expr / memory / core

cli-anything-lldb --json expr "argc"
cli-anything-lldb --json memory read --address 0x1000 --size 128
cli-anything-lldb --json memory find "needle" --start 0x1000 --size 4096
cli-anything-lldb --json core load --path /path/to/core

Notas de uso para agentes

  • Prefiere --json para todos los flujos automatizados.
  • Las invocaciones no REPL comparten un demonio de sesión persistente por defecto.
  • Utiliza --session-file RUTA o CLI_ANYTHING_LLDB_SESSION_FILE para fijar una sesión explícita para una tarea.
  • Ejecuta cli-anything-lldb --json session close al finalizar para que los procesos adjuntos se desvinculen y los depurados lanzados se limpien.
  • Usa el REPL cuando un shell interactivo similar al humano sea más conveniente, no porque la persistencia lo requiera.
  • Los puntos de interrupción CLI no resueltos fallan por defecto; pasa --allow-pending solo cuando se espera que se cargue un módulo/símbolo futuro.
  • Los puntos de interrupción DAP no resueltos utilizan semántica de protocolo: verified: false hasta que se resuelvan.
  • DAP continue no es bloqueante para procesos GUI de larga duración, y DAP pause utiliza interrupción asíncrona.
  • Los cambios de puntos de interrupción DAP durante un continue activo primero interrumpen y esperan un estado detenido antes de mutar LLDB.
  • Utiliza perfiles de reglas de parada DAP para paradas internas específicas de la aplicación; reinicia y vuelve a adjuntar/relanzar después de cambios en el perfil.
  • memory find utiliza un escaneo por fragmentos con un límite de 1 MiB por llamada.
  • Ejecuta target create antes de los comandos de proceso o core.
  • Espera errores estructurados: {"error": "...", "type": "..."}

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

cli-anything-adguardhome

>-

cli-anything-anygen

>-

cli-anything-audacity

>-

cli-anything-blender

>-

cli-anything-browser

Browser automation CLI using DOMShell MCP server. Maps Chrome

cli-anything-calibre

>-

cli-anything-ccswitch

CLI interface for CC Switch — manage AI coding tool configurations from the terminal

cli-anything-chromadb

>-

cli-anything-cloudanalyzer

Command-line interface for CloudAnalyzer — Agent-friendly harness for CloudAnalyzer, a QA platform for mapping, localization, and perception outputs. Supports 27 commands across 8 groups: point cloud evaluation, trajectory evaluation, ground segmentation QA, config-driven quality gates, baseline evolution, processing, visualization, and interactive REPL.

cli-anything-cloudcompare

Command-line interface for CloudCompare — Agent-friendly harness for CloudCompare, the open-source 3D point cloud and mesh processing software. Supports 41 commands across 9 groups: project management, session control, point cloud operations (subsample, filter, segment, analyze), mesh operations, distance computation (C2C, C2M), transformations (ICP, matrix), export (LAS/LAZ/PLY/PCD/OBJ/STL/E57), and interactive REPL.

cli-anything-comfyui

>-

cli-anything-dify-workflow

Wrapper for the Dify workflow DSL CLI. Create, inspect, validate, edit, and export Dify workflow files through a CLI-Anything harness.

cli-anything-drawio

>-

cli-anything-eez-studio

Use EEZ Studio from the command line: inspect and modify native .eez-project files, edit LVGL screens/widgets, manage SCPI commands, and invoke the real EEZ Studio backend for LVGL builds.

cli-anything-eth2-quickstart

>-

cli-anything-exa

>-

cli-anything-firefly-iii

Firefly III CLI - Personal finance management via CLI-Anything

cli-anything-freecad

Complete CLI harness for FreeCAD parametric 3D CAD modeler (258 commands). Covers ALL workbenches: Part (29 primitives + boolean + mirror + loft + sweep), Sketcher (26 cmds: geometry + constraints + editing), PartDesign (38 cmds: pad/pocket/groove/fillet/chamfer/patterns/hole/datum), Assembly (11 cmds), Mesh (16 cmds), TechDraw (15 cmds: views + dimensions + PDF/SVG), Draft (33 cmds: 2D shapes + arrays + transforms), FEM (12 cmds), CAM/CNC (10 cmds), Surface (6 cmds), Spreadsheet (7 cmds), Import (13 formats), Export (17 formats), Measure (12 cmds), Materials (21 presets). Headless FreeCAD export to STEP/IGES/STL/OBJ/DXF/PDF/glTF/3MF.

cli-anything-gimp

>-

cli-anything-godot

>-

Skills relacionados