LLDB is in early development and supports basic debugging scenarios on Mac OS X. The public API has not been finalized, and different parts are at different levels of maturity. We welcome any help fleshing out missing pieces and improving the code.

What works well:

  • Process control, including external process control via debugserver (which is included as part of the lldb project)
  • Breakpoints: Source-line, symbolic, C++ mangled names, module scoping
  • Symbol reading and object file introspection
  • Script bridging
  • Thread inspection and stepping
  • Disassembly of i386, x86-64, & ARM/Thumb machine code, and backtracing on i386 & x86-64
  • The basic command line prompt system, shared library tracking, source listings.

What is still pretty new:

  • The public API to the library
  • Expression evaluation
  • Objective-C support: stepping into/over, printing the description of an object ("po")
  • Breakpoint actions & scripts
  • Attaching to existing processes

What isn't there yet:

  • Regression test suite
  • Operating system support hasn't been fully modularized yet
  • Blocks support
  • Calling functions in expressions
  • Objective-C 2.0 Support: Printing properties, synthetic properties, Objective-C expressions, KVO, dynamic types, dot syntax, runtime data
  • C++ support: Method access, handling demangled names, dynamic types
  • Exception support: Breaking by name, thrown object, thrower