Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
mohitmishra786 avatar

Lldb

  • 360 installs
  • 155 repo stars
  • Updated June 27, 2026
  • mohitmishra786/low-level-dev-skills

Debug crashes, deadlocks, and memory faults in native binaries with LLDB breakpoints, backtraces, register inspection, and scripted debugging on macOS and Linux.

About

Teaches LLDB workflows for diagnosing native crashes and concurrency bugs: launching targets, reading stacks and registers, scripting repeatable debug sessions, and validating fixes on CLI, mobile, and server binaries.

  • Breakpoint and watchpoint setup
  • Backtrace and frame inspection
  • Register and memory reads
  • Scripted LLDB automation
  • macOS/iOS native debugging

Lldb by the numbers

  • 360 all-time installs (skills.sh)
  • +25 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #113 of 596 Debugging skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill lldb

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs360
repo stars155
Last updatedJune 27, 2026
Repositorymohitmishra786/low-level-dev-skills

What it does

Debug crashes, deadlocks, and memory faults in native binaries with LLDB breakpoints, backtraces, register inspection, and scripted debugging on macOS and Linux.

Files

SKILL.mdMarkdownGitHub ↗

LLDB

Purpose

Guide agents through LLDB sessions and map existing GDB knowledge to LLDB. Covers command differences, Apple specifics, Python scripting, and IDE integration.

Triggers

  • "I'm on macOS and need to debug a C++ program"
  • "How does LLDB differ from GDB?"
  • "How do I do [GDB command] in LLDB?"
  • "LLDB shows <unavailable> for variables"
  • "How do I use LLDB in VS Code?"
  • "How do I write an LLDB Python script?"

Workflow

1. Start LLDB

lldb ./prog                         # load binary
lldb ./prog -- arg1 arg2            # with arguments
lldb -p 12345                       # attach to PID
lldb -c core.1234                   # load core dump
lldb ./prog core.1234               # binary + core

2. GDB → LLDB command map

Source: <https://lldb.llvm.org/use/map.html>

GDBLLDBNotes
run [args]process launch [args] / r
continueprocess continue / c
nextthread step-over / n
stepthread step-in / s
nextithread step-inst-over / ni
stepithread step-inst / si
finishthread step-out / finish
break mainbreakpoint set -n main / b main
break file.c:42breakpoint set -f file.c -l 42 / b file.c:42
break *0x400abcbreakpoint set -a 0x400abc / b -a 0x400abc
watch xwatchpoint set variable x / wa s v x
print xframe variable x / p x
print/x xp/x x
info localsframe variable / fr v
info argsframe variable --arguments
backtracethread backtrace / bt
frame Nframe select N / f N
info threadsthread list
thread Nthread select N
thread apply all btthread backtrace all
x/10wx addrmemory read -s4 -fx -c10 addr / x/10xw addr
set var = 42expression var = 42 / expr var = 42
quitquit / q

3. Breakpoints

# By name
b main
breakpoint set --name foo
breakpoint set --name foo --condition 'x > 0'

# By file:line
b file.c:42
breakpoint set --file file.c --line 42

# By address
b -a 0x100003f20

# By regex
breakpoint set --func-regex '^MyClass::'

# List
breakpoint list / br l

# Delete
breakpoint delete 2

# Disable/enable
breakpoint disable 1
breakpoint enable 1

# Commands on hit
breakpoint command add 1
  > p x
  > continue
  > DONE

4. Inspect state

# Print variable
p x
frame variable x
p *ptr
p arr[0]

# Print expression
expression x * 2 + 1
expr (int)sqrt(9.0)

# All locals
frame variable
fr v -a          # include arguments

# Registers
register read
register read rip rsp

# Memory
memory read --size 4 --format x --count 10 0x7fff0000
x/10xw 0x7fff0000          # GDB-compatible syntax

# Type info
image lookup --type MyClass
type lookup MyClass

5. Watchpoints

watchpoint set variable x           # write watchpoint
watchpoint set variable -w read x   # read watchpoint
watchpoint set variable -w read_write x
watchpoint set expression -- &x     # by address

watchpoint list
watchpoint delete 1

6. Threads

thread list
thread select 3
thread backtrace all
thread backtrace --count 5           # limit depth

# Per-thread stepping
thread step-over                     # step this thread only

7. macOS / Apple specifics

# Symbol lookup in shared cache
image lookup --address 0x18ab12345
image lookup --name objc_msgSend

# Objective-C method breakpoint
b "-[NSArray objectAtIndex:]"
b "+[NSString stringWithFormat:]"

# Inspect Objective-C object
po myObject                          # print-object (calls -description)
po [arr count]

# Show loaded libraries
image list
image list -b                        # brief (names only)

8. VS Code integration

Install the CodeLLDB extension. .vscode/launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug (lldb)",
      "type": "lldb",
      "request": "launch",
      "program": "${workspaceFolder}/build/prog",
      "args": [],
      "cwd": "${workspaceFolder}",
      "preLaunchTask": "build"
    }
  ]
}

9. LLDB Python scripting

import lldb

def print_all_threads(debugger, command, result, internal_dict):
    target = debugger.GetSelectedTarget()
    process = target.GetProcess()
    for thread in process:
        print(f"Thread {thread.GetIndexID()}: {thread.GetName()}")
        for frame in thread:
            print(f"  {frame}")

def __lldb_init_module(debugger, internal_dict):
    debugger.HandleCommand('command script add -f myscript.print_all_threads pthreads')

Load: command script import /path/to/myscript.py

For a full GDB↔LLDB command map, see references/gdb-lldb-map.md.

Related skills

  • Use skills/debuggers/gdb for GDB workflows
  • Use skills/debuggers/core-dumps for core dump analysis
  • Use skills/compilers/clang for building with debug info

Related skills

Debuggingtestingbackend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.