LLDB
LLDB is a debugger for C, C++, Objective-C, and Objective-C++ development.
What LLDB is
LLDB is a debugger for C, C++, Objective-C, and Objective-C++ development. It is the default debugger in Xcode on macOS and can debug programs on desktop and iOS devices and simulators. Its tools include breakpoints, watchpoints, launching processes, and attaching to programs; it also supports remote debugging on Linux, Windows, Android, and iOS. LLDB uses Clang infrastructure to evaluate current language features, including multiline expressions and just-in-time evaluation where supported. Developers can use its shared-library C++ API and Python bindings for scripting, symbolication, disassembly, and inspecting object and symbol files. The lldb-dap adapter makes debugger functions available through compatible editors and IDEs, and documents several breakpoint types, memory access, and disassembly requests. LLDB is free, with project code under the Apache 2.0 License with LLVM exceptions. Windows support is under active development, and ARM and AArch64 support is more experimental. The project warns that it does not source a current-directory .lldbinit file by default for security reasons.
Good
- Free, with project code under the Apache 2.0 License with LLVM exceptions.
- Supports C, C++, Objective-C, and Objective-C++.
- Includes breakpoints, watchpoints, launching, and attaching.
- Public C++ API and Python bindings are available.
- Remote debugging includes Linux, Windows, Android, and iOS.
Watch out
- Windows support is under active development.
- ARM and AArch64 support is more experimental.
- lldb-dap lacks step-back and variable-setting support.
- Time-travel debugging is not supported.
Who it suits
LLDB suits developers working with C-family languages who need desktop, iOS, or remote debugging. Its API and Python bindings may also suit developers building scripting or inspection workflows.
Verdict
LLDB offers broad C-family debugging, API access, and editor integration at no cost. Check the Windows and architecture caveats, and note that some lldb-dap requests are unsupported.
Plans and prices
From LLDB's own pricing page, checked 30 Sep 2026.
| Plan | Price | What it gives you |
|---|---|---|
| LLDB | Free | Open source debugger |
The facts
Each one read from LLDB's own pages, with the date it was checked.
What it does
- Acquiring lldb-dap
- The lldb-dap binary can come from a toolchain, an LLVM release package or system package manager, or a source build.checked 29 Sep 2026
- Additional uses
- The LLDB API can also be used for symbolication, disassembly, and object and symbol file introspection.checked 29 Sep 2026
- API and scripting
- LLDB exposes a public C++ API through a shared library and Python script bindings, enabling scripting and uses such as symbolication and disassembly.checked 30 Sep 2026
- Debug features
- lldb-dap documents support for function, conditional, data, and instruction breakpoints, memory read/write, and disassembly requests.checked 29 Sep 2026
- Debugging tools
- LLDB supports breakpoints, watchpoints, process launching, and attaching to programs.checked 30 Sep 2026
- Expression evaluation
- LLDB supports multiline expressions, can use a JIT when available, and can evaluate expression IR when the JIT cannot be used.checked 30 Sep 2026
- Getting the debugger
- The lldb-dap binary can be obtained from an LLVM release package, a toolchain or package manager, or by building from source.checked 30 Sep 2026
- IDE integration
- The lldb-dap component exposes LLDB through the Debug Adapter Protocol for editors and IDEs that support DAP, including Visual Studio Code, Emacs, Vim, and Neovim.checked 30 Sep 2026
- Languages
- LLDB supports debugging C, Objective-C, and C++ on desktop and iOS devices and simulators.checked 30 Sep 2026
- Language support
- LLDB supports debugging C, Objective-C, and C++ on desktop and iOS devices and simulators.checked 29 Sep 2026
- License
- The LLDB project code is available under the Apache 2.0 License with LLVM exceptions.checked 30 Sep 2026
- Notable limits
- lldb-dap documents no support for step-back, setting a variable, goto-target requests, or terminate requests.checked 29 Sep 2026
- Other integration
- LLDB documentation describes an integration using the Model Context Protocol.checked 30 Sep 2026
- Purpose
- LLDB is a high-performance debugger built from reusable components that use LLVM libraries such as the Clang expression parser and LLVM disassembler.checked 30 Sep 2026
- Remote debugging
- LLDB documents remote debugging for platforms including Linux, Windows, Android, and iOS.checked 30 Sep 2026
- Reusable API
- LLDB exposes a public object-oriented C++ API through a shared library, with Python bindings also available.checked 29 Sep 2026
- Security
- For security reasons, LLDB warns and does not source a current-directory .lldbinit file by default.checked 30 Sep 2026
- Support and community
- The project directs LLDB discussions to its forum and the lldb channel on the LLVM Discord server.checked 30 Sep 2026
- Xcode
- LLDB is the default debugger in Xcode on macOS.checked 29 Sep 2026
Where it runs
- Platforms
- The documentation lists macOS, iOS/tvOS/watchOS simulators and devices, Linux, FreeBSD, NetBSD, and Windows among platforms known to work.checked 29 Sep 2026
- Platform support
- The project lists macOS, Linux, FreeBSD, NetBSD, and Windows support; it says Windows support is under active development and ARM and AArch64 support is more experimental.checked 30 Sep 2026
- Windows status
- Windows support is under active development; basic functionality is expected to work, while ARM and AArch64 support is described as more experimental.checked 29 Sep 2026
The full review of LLDB
LLDB is an open-source debugger for developers working in C-family languages and LLVM-based toolchains. It suits programmers who want low-level control, scriptable APIs, or Xcode’s native debugging workflow. Its breadth is compelling, though Windows maturity and several Debug Adapter Protocol gaps deserve attention.
Overview
LLDB is a high-performance debugger assembled from reusable components, including LLVM’s disassembler and Clang’s expression parser. It can launch programs, attach to running processes, and work with breakpoints and watchpoints. Support for core dumps is useful when a live debugging session is not possible, but the absence of time-travel debugging rules it out for teams that depend on replaying earlier execution.
The project code uses the Apache 2.0 License with LLVM exceptions. LLDB is the default debugger in Xcode on macOS, while its documented targets include desktop, mobile, and BSD systems.
Key features
Debugging and expression evaluation
LLDB supports C, C++, and Objective-C debugging on desktop and iOS devices and simulators, with Objective-C++ also supported by its expression evaluator. Clang-based evaluation covers current language features and can handle multiline expressions; just-in-time evaluation is available where supported. That combination is useful for inspecting or manipulating program state in context, though JIT availability depends on the environment.
Conditional and exception breakpoints, watchpoints, process launch, and attachment cover the core control loop. LLDB also documents memory read and write, plus disassembly requests through lldb-dap. Its API supports symbolication and inspection of object and symbol files, extending its use beyond interactive sessions.
APIs and editor integration
A public object-oriented C++ API is exposed through a shared library, with Python bindings for scripting. Developers building tools or automating debugging workflows can use those interfaces without being limited to a single editor. The documentation also describes an integration using the Model Context Protocol.
For compatible editors and IDEs, lldb-dap presents LLDB through the Debug Adapter Protocol, including integrations for Visual Studio Code, Emacs, vim, and neovim. It supports function, conditional, data, and instruction breakpoints. However, it does not support step-back, setting a variable, goto-target, or terminate requests, so editor workflows needing those operations may be incomplete.
Remote debugging and configuration
LLDB documents remote debugging for Linux, Windows, Android, and iOS. For security reasons, it does not source a current-directory .lldbinit file by default; users relying on project-local initialization need to account for that behavior.
Pricing
LLDB costs free under its open-source plan, with no free trial. The free plan is the full project offering rather than a time-limited evaluation, making it suitable for individual developers and teams that can use its license and integrations. There are no paid tiers, seat counts, or quotas to weigh.
Platforms
The documented target platforms are macOS, iOS, tvOS, watchOS, Linux, FreeBSD, NetBSD, Windows, and Android. LLDB is the default debugger in Xcode on macOS, and it can debug C-family programs on iOS devices and simulators. Remote debugging extends to Linux, Windows, Android, and iOS.
Windows support remains under active development: basic functionality is expected to work, but ARM and AArch64 support is more experimental. Windows users targeting those architectures should treat LLDB as a less settled choice than users on its established platforms.
Who it's for
LLDB is a strong fit for C, C++, and Objective-C developers who want a free debugger with deep LLVM and Clang integration, especially those using Xcode or scripting through its APIs. It also suits developers building debugger-adjacent tools for symbolication, disassembly, or binary inspection.
It is less suitable when time-travel debugging is essential, when a workflow depends on unsupported lldb-dap requests, or when Windows ARM and AArch64 support must be mature. Its C-family focus also makes it a poor default for developers whose primary debugging needs fall outside those languages.
Pros and cons
- Pros: Free and open source under the Apache 2.0 License with LLVM exceptions, with no trial clock or paid tier.
- Pros: Clang-based expression evaluation and broad C-family debugging suit low-level development, including Apple-platform work.
- Pros: C++ and Python interfaces support custom tooling, scripting, and uses such as symbolication.
- Cons: No time-travel debugging, so it cannot replay prior program execution.
- Cons: lldb-dap omits step-back, variable-setting, goto-target, and terminate requests, which can restrict editor workflows.
- Cons: Windows is still under active development, with ARM and AArch64 specifically more experimental.
Alternatives
Browse the Debuggers category to compare options across the category.
- Delve is another free debugger for readers whose platform needs match its Linux, macOS, Windows, API, or self-hosted availability.
- IDA Pro is worth considering when disassembly and decompilation are the priority: IDA Free costs nothing and includes x86-32 and x86-64 disassembly plus two cloud-based decompilers; IDA Pro Essential is 1099.00 USD.
- Xdebug is a freemium alternative for readers seeking a debugger with Linux, macOS, Windows, web, or self-hosted platform availability. Its Pro plan is £200 a year and is for one developer.
- GDB is a free alternative for readers who want a debugger under the GNU General Public License with source code available.
- FlowStorm is a free and open-source option for readers whose platform needs fit Linux, Windows, or self-hosted use.
- RenderDoc is a free, MIT-licensed alternative for readers working on Android, Linux, or Windows.
- dnSpyEx is another free option for readers considering Linux or Windows.
- OpenOCD is another free option for readers considering Windows, macOS, or Linux.
Verdict
Choose LLDB if you need a capable, free C-family debugger with Clang expression evaluation, scriptable APIs, and a natural place in Xcode workflows. Look elsewhere if replay debugging is central, your editor depends on missing lldb-dap requests, or you need mature Windows ARM or AArch64 support.
Getting started
- Get LLDB through an LLVM release package, a toolchain or a system package manager, or build it from source.
- Use LLDB as the default debugger in Xcode on macOS, or connect it through a compatible editor or IDE.
- For editor integration, obtain the lldb-dap binary from a toolchain, LLVM release package, package manager or source build.
- Use the LLDB documentation forum or LLVM Discord for discussion, and its bug report and code review links for project issues.
Limits worth knowing
lldb-dap documents no support for step-back, setting a variable, goto-target requests or terminate requests. Windows support is under active development, with ARM and AArch64 support more experimental.
Questions
Does LLDB cost anything?
No. LLDB is free, and the project code is available under the Apache 2.0 License with LLVM exceptions.
Which languages can LLDB debug?
It supports C, C++ and Objective-C debugging on desktop and iOS devices and simulators. Its expression evaluation also handles Objective-C++ features.
Which platforms does LLDB support?
The project lists macOS, Linux, FreeBSD, NetBSD and Windows support, and documents remote debugging for platforms including Linux, Windows, Android and iOS. Windows support is under active development.
Does LLDB work with Xcode?
Yes. LLDB is the default debugger in Xcode on macOS.
Can I use LLDB from other editors?
Yes. The lldb-dap adapter exposes LLDB through the Debug Adapter Protocol for compatible editors and IDEs, including Visual Studio Code, Emacs, vim and neovim.
Is LLDB open source?
Yes. The LLDB project code is available under the Apache 2.0 License with LLVM exceptions.
Alternatives to LLDB
- 1

IDA Pro
Free planLinuxmacOSWindows7.0From $1,099 a year - 2
PonyDebugger
Free planiOSWebmacOSSelf-hosted6.8Free plan - 3
pyOCD
Free planAPILinuxmacOSSelf-hosted6.8Free plan - 4
Perl Debugger
Free planLinuxmacOSWindows6.5Free plan - 5

Black Magic Debug
Free planLinuxmacOSWindows6.4Free plan - 6
FLEX
Free planiOS6.4Free plan
