LLDB vs pyOCD
LLDB
lldb.llvm.orgpyOCD
pyocd.ioSide by side
| Figure | LLDB | pyOCD |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| iOS | Yes | — |
| Android | Yes | — |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Debuggers | 8.6 (#2) | 8.6 (#3) |
| License | The LLDB project code is available under the Apache 2.0 License with LLVM exceptions. | The project code is licensed under Apache 2.0. |
| Purpose | LLDB is a high-performance debugger built from reusable components that use LLVM libraries such as the Clang expression parser and LLVM disassembler. | pyOCD is a Python based tool and API for debugging, programming, and exploring Arm Cortex microcontrollers. |
Plans
In their own words
LLDB
LLDB is a free debugger built from reusable components that use LLVM libraries, including Clang's expression parser and the 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 also documented for Linux, Windows, Android, and iOS. Expression evaluation uses Clang infrastructure for current C-family language features, 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 connects LLDB functionality to compatible editors and IDEs, including Visual Studio Code, Emacs, vim, and neovim. LLDB is available under the Apache 2.0 License with LLVM exceptions. Windows support remains under active development, with ARM and AArch64 described as more experimental. The lldb-dap interface documents no support for step-back, setting a variable, goto-target, or terminate requests.
pyOCD
pyOCD is a Python tool and API for debugging, programming, and exploring Arm Cortex microcontrollers. Its GDB server supports command-line debugging and IDE workflows, including Arm CMSIS Debugger, Cortex-Debug, and Eclipse Embedded CDT. It can program firmware and data images into internal or external flash, or load images into RAM. The Python API controls target devices and can support CI setups and custom test or debug tools. More than 70 common Arm Cortex-M devices have built-in support, with CMSIS Device Family Packs available for additional devices. Features include semihosting, SWV, and CMSIS-Pack support. Built-in probe plug-ins include CMSIS-DAP, Raspberry Pi Picoprobe, SEGGER J-Link, STLink, and pyOCD remote; PE Micro Cyclone and Multilink require a separate plug-in. A server and client can share probes over TCP/IP. pyOCD requires Python 3.9 or later and runs on macOS, Linux, FreeBSD, and Windows. It is free, with code licensed under Apache 2.0. Unlocking a supported locked device can require a mass erase, which erases its data.