LLDB
What it is
LLDB is a free debugger built from reusable components that use LLVM libraries, including the Clang expression parser and LLVM disassembler. It is the default debugger in Xcode on macOS and supports debugging C, C++, and Objective-C on desktop and iOS devices and simulators. Its tools include breakpoints, watchpoints, process launching, and attaching to programs; remote debugging is documented for 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 inspection of 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's code is available under the Apache 2.0 License with LLVM exceptions. Windows support is under active development, with ARM and AArch64 support described as more experimental. The project also documents limits in lldb-dap, including no support for step-back, setting a variable, goto-target, or terminate requests.
For and against
For
- Free debugger under Apache 2.0 with LLVM exceptions
- Default debugger in Xcode on macOS
- C++ API and Python bindings
- Remote debugging includes Linux, Windows, Android, and iOS
- Supports breakpoints, watchpoints, and process attachment
Against
- Windows support remains under active development
- ARM and AArch64 support is more experimental
- lldb-dap lacks step-back and variable-setting requests
- No lldb-dap goto-target or terminate requests
The verdict
LLDB offers debugging tools, language evaluation, and APIs for developers working across its listed targets. Windows and some lldb-dap capabilities have stated limitations to weigh before choosing it.
Who it suits
LLDB suits developers debugging C, C++, Objective-C, or Objective-C++ code, including people working with Xcode or compatible editors and IDEs. Its API and Python bindings also serve developers who want scripting or inspection tools.
Plans and prices
LLDB
Open source debugger
Read 30 Sep 2026 · lldb.llvm.org
On the record
- Acquiring lldb-dap
- The lldb-dap binary can come from a toolchain, an LLVM release package or system package manager, or a source build.lldb.llvm.org · read 29 Sep 2026
- Additional uses
- The LLDB API can also be used for symbolication, disassembly, and object and symbol file introspection.lldb.llvm.org · read 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.lldb.llvm.org · read 30 Sep 2026
- Debug features
- lldb-dap documents support for function, conditional, data, and instruction breakpoints, memory read/write, and disassembly requests.lldb.llvm.org · read 29 Sep 2026
- Debugging tools
- LLDB supports breakpoints, watchpoints, process launching, and attaching to programs.lldb.llvm.org · read 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.lldb.llvm.org · read 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.lldb.llvm.org · read 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.lldb.llvm.org · read 30 Sep 2026
- Languages
- LLDB supports debugging C, Objective-C, and C++ on desktop and iOS devices and simulators.lldb.llvm.org · read 30 Sep 2026
- Language support
- LLDB supports debugging C, Objective-C, and C++ on desktop and iOS devices and simulators.lldb.llvm.org · read 29 Sep 2026
- License
- The LLDB project code is available under the Apache 2.0 License with LLVM exceptions.lldb.llvm.org · read 30 Sep 2026
- Notable limits
- lldb-dap documents no support for step-back, setting a variable, goto-target requests, or terminate requests.lldb.llvm.org · read 29 Sep 2026
- Other integration
- LLDB documentation describes an integration using the Model Context Protocol.lldb.llvm.org · read 30 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.lldb.llvm.org · read 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.lldb.llvm.org · read 30 Sep 2026
- Remote debugging
- LLDB documents remote debugging for platforms including Linux, Windows, Android, and iOS.lldb.llvm.org · read 30 Sep 2026
- Reusable API
- LLDB exposes a public object-oriented C++ API through a shared library, with Python bindings also available.lldb.llvm.org · read 29 Sep 2026
- Security
- For security reasons, LLDB warns and does not source a current-directory .lldbinit file by default.lldb.llvm.org · read 30 Sep 2026
The review
Overview
LLDB is a debugger for developers working with programs built around LLVM-supported languages and targets. It is a strong fit for C-family development, especially in Xcode, but its uneven Windows maturity and missing lldb-dap operations matter if those are central to your workflow.
Key features
Debugging and expression evaluation
LLDB provides breakpoints, watchpoints, process launching, and attachment, plus conditional and exception breakpoints and core-dump debugging. That range supports routine inspection and control of a program, though the absence of time-travel debugging means it is not the choice for developers who need to rewind execution to investigate a past state.
Its Clang-based evaluator handles current C, C++, Objective-C, and Objective-C++ expressions, including multiline expressions and just-in-time evaluation where supported. This is useful for inspecting and working with language expressions during debugging; the qualification matters, since JIT evaluation is not universal.
Editor integration and APIs
LLDB is the default debugger in Xcode on macOS. The lldb-dap adapter exposes debugger functions to compatible editors and IDEs such as Visual Studio Code, Emacs, vim, and neovim. It supports function, conditional, data, and instruction breakpoints, memory reads and writes, and disassembly requests. However, it does not support step-back, setting a variable, goto-target, or terminate requests, so workflows depending on those adapter operations may need another debugger or a different route.
Developers can build on its public object-oriented C++ API, distributed through a shared library, and Python bindings. Beyond interactive debugging, these interfaces can support scripting, symbolication, disassembly, and object- or symbol-file inspection. LLDB also documents an integration using the Model Context Protocol. The lldb-dap binary can be obtained through a toolchain, an LLVM release or system package manager, or a source build, giving teams several ways to provision it.
Pricing
LLDB is free and open source under the Apache 2.0 License with LLVM exceptions. Its LLDB plan costs nothing. There is no free trial because no paid plan is needed to use the debugger. No seat or usage quota is attached to the free plan.
Platforms
LLDB targets macOS, iOS, tvOS, watchOS, Linux, FreeBSD, NetBSD, Windows, and Android; remote debugging is documented for Linux, Windows, Android, and iOS. Its language support covers C, C++, and Objective-C debugging on desktop and iOS devices and simulators, while the evaluator also handles Objective-C++. On Windows, basic functionality is expected to work, but support remains under active development and ARM and AArch64 support is more experimental. That makes LLDB a less settled choice for Windows teams, particularly those targeting those architectures.
For security, LLDB does not source a current-directory .lldbinit file by default. This reduces the risk of automatically executing an untrusted configuration, though developers who rely on such files must account for the behavior.
Who it's for
LLDB suits developers building and debugging C-family software across Apple platforms and LLVM-supported desktop and mobile targets, especially teams already using Xcode or compatible editor integrations. Its reusable APIs also make it relevant to developers building debugger tooling or using symbolication and disassembly. It is a weaker fit for workflows that require time-travel debugging, the unsupported lldb-dap operations, or mature Windows support on ARM and AArch64.
Pros and cons
- Pros: Broad C-family language support, including Objective-C++ expression evaluation, gives developers one debugger for closely related languages.
- Pros: Xcode's default debugger status and lldb-dap support for several editors make LLDB practical in Apple and compatible-editor workflows.
- Pros: A public C++ API and Python bindings extend its usefulness beyond interactive debugging to scripting and binary inspection tasks.
- Cons: No time-travel debugging leaves developers without a rewind-based way to trace execution.
- Cons: lldb-dap lacks step-back, variable-setting, goto-target, and terminate requests, which can constrain editor-driven workflows.
- Cons: Windows support is still developing, with ARM and AArch64 explicitly more experimental.
Alternatives
For a debugger directory, browse Debuggers. Choose RenderDoc instead if its Android, Linux, and Windows platform range better matches your target; it is also free and open source, under the MIT license. FLEX is an iOS-only free alternative. PonyDebugger is another free option if its web, macOS, and iOS platform coverage suits your needs.
IDA Pro offers a free IDA Free plan with x86-32 and x86-64 disassembly, two cloud-based decompilers, and a named license on macOS, Linux, and Windows; choose it when those capabilities fit your work, or consider IDA Pro Essential at $1,099. FlowStorm is a free, open-source option for Linux, macOS, Windows, and self-hosted use. GDB is a free alternative with source code available under the GNU General Public License. Delve is another free option, with Linux, macOS, Windows, API, and self-hosted platform coverage.
Xdebug may suit readers seeking a freemium option across Linux, macOS, self-hosted, web, and Windows. Its Pro plan costs £200 a year and includes one developer, email technical support at medium issue priority, an opt-in monthly newsletter, and an invoice.
Verdict
Choose LLDB for free, capable C-family debugging across Apple platforms and a broad set of documented targets, particularly if you work in Xcode or use its APIs and editor integrations. Look elsewhere if your workflow depends on time-travel debugging, the lldb-dap operations it omits, or dependable Windows ARM and AArch64 support.