pyOCD vs UDB
pyOCD
pyocd.ioUDB
undo.ioSide by side
| Figure | pyOCD | UDB |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | Yes |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Debuggers | 8.6 (#3) | 7.6 (#16) |
| IDE integrations | The site names Arm CMSIS Debugger, Cortex-Debug, and Eclipse Embedded CDT as supported GDB integrations. | The product page names Visual Studio Code, CLion, Eclipse, and Emacs integrations; the Eclipse guide labels that integration experimental. |
| Purpose | pyOCD is a Python based tool and API for debugging, programming, and exploring Arm Cortex microcontrollers. | UDB is an interactive time travel debugger for Linux C/C++ that records program execution so developers can replay it and inspect state. |
Plans
In their own words
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.