Agent skill
debug-lldb
Capture and analyze thread backtraces with LLDB/GDB to debug hangs, deadlocks, UI freezes, IPC stalls, or high-CPU loops across any language or project. Use when an app becomes unresponsive, switching contexts stalls, or you need thread stacks to locate lock inversion or blocking calls.
Install this agent skill to your Project
npx add-skill https://github.com/regenrek/agent-skills/tree/main/skills/debug-lldb
SKILL.md
Debug Lldb
Overview
Capture stack traces from a live process to explain stalls and freezes, then triage for deadlocks, blocking IPC, or tight loops. Prefer repeat sampling so the hang signature is obvious.
Workflow
1) Identify the process
- Use
ps/pgrepto get the PID. - Prefer the foreground app PID (not the dev server).
2) Capture backtraces (fast path)
- Use the bundled script:
scripts/collect_stacks.sh --pid <pid> --out /tmp/hang --repeat 3 --sleep 0.5- Or by name:
scripts/collect_stacks.sh --name "<process-substring>" --out /tmp/hang
- Run in a separate terminal if the current one is interactive with the hung app.
3) Capture backtraces (manual)
- macOS (LLDB):
lldb -p <pid> -o 'thread backtrace all' -o 'detach' -o 'quit' > /tmp/hang.txt 2>&1
- Linux (GDB):
gdb -q -p <pid> -ex "thread apply all bt" -ex "detach" -ex "quit" > /tmp/hang.txt 2>&1
- Windows:
- Use WinDbg or cdb to capture all-thread backtraces.
4) Triage the hang
- Compare 3–5 samples taken 0.2–1s apart.
- Use
references/triage.mdfor quick pattern matching (deadlock vs busy loop vs blocking I/O).
5) Attach context
- Include what action triggered the stall and the exact time window.
- Add relevant app logs around the stall.
Resources
scripts/
scripts/collect_stacks.sh- attach to a PID or process name and capture N stack dumps.
references/
references/triage.md- quick patterns for deadlocks, blocking IPC, and busy loops.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
shadcn-vite-iconify-landing-page
Build, critique, and iterate high-converting marketing or product landing pages using React + Vite + TypeScript + Tailwind and shadcn/ui components, with all icons sourced from Iconify. Use when the user asks for a landing page, sales page, signup page, CRO improvements, above-the-fold vs below-the-fold structure, hero + CTA copy, section order, or wants production-ready shadcn + Vite code.
security-leak-guardrails
Sets up secret-leak prevention guardrails with forbidden path checks, gitleaks config, CI secret scanning, and dependency updates. Use when hardening repos against credential leaks or when adding gitleaks, trufflehog, git hooks, or security checks.
homebrew-publish
Publish CLIs/TUIs to Homebrew via a personal tap. Use when asked to create or manage a Homebrew tap repo, generate or update formulae, compute sha256, test installs, or ship new releases for Go, Rust, Node/TypeScript, Python, or prebuilt binaries.
architecture-ownership
Determine runtime owner, first-fix layer, and canonical long-term module or package owner in layered codebases. Use when placing code across UI vs platform shell vs runtime orchestration vs domain or application vs shared core vs adapter or integration layers, debugging ownership issues, removing duplicate policy paths, or answering "where should this live?" architecture questions.
codex-analysis
Run Codex CLI for deep code analysis and second-opinion reviews. Use when the user explicitly asks for Codex analysis, Codex help, or wants a second opinion from Codex on code, architecture, or debugging questions.
go-local-health
Run local Go health checks (tests, coverage, lint) in Go repositories that contain go.mod/go.sum. Use when the user asks to run or interpret local Go test/coverage/lint workflows using tools like lazygotest, gocovsh, tparse, and golangci-lint. Do not use for Rust or non-Go projects.
Didn't find tool you were looking for?