OllyDbg vs pyOCD
OllyDbg
ollydbg.orgpyOCD
pyocd.ioSide by side
| Figure | OllyDbg | pyOCD |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | — | Yes |
| Linux | — | Yes |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Debuggers | 7.5 (#17) | 8.6 (#3) |
| Purpose | OllyDbg is a 32-bit assembler-level debugger for Microsoft Windows, intended for binary code analysis when source code is unavailable. | pyOCD is a Python based tool and API for debugging, programming, and exploring Arm Cortex microcontrollers. |
| Support | The FAQ says the author usually answers email questions within 1–3 days. | The project directs users to GitHub issues and discussions, a public Slack workspace, and a Google Groups mailing list. |
Plans
In their own words
OllyDbg
OllyDbg is a free 32-bit assembler-level debugger for Microsoft Windows, intended for binary analysis when source code is unavailable. It traces registers and identifies procedures, loops, API calls, switches, tables, constants, and strings. The debugger can load DLLs, attach to running programs, and handle multithreaded applications. Breakpoint types include conditional, logging, memory, and hardware breakpoints; execution tracing can log arguments for known functions. Patches can be retained between sessions, written back to executable files, and used to update fixups. An open architecture supports third-party plugins, and the maker provides a Plugin Development Kit with documented samples. Listed requirements include Windows 95, 98, NT 4.0, 2000, or higher; Win32s is unsupported. Development is frozen, and the 64-bit version is incomplete. Registration is free and requested for permanent or commercial use. The maker says original versions 1.00–1.10 do not communicate with other computers except for remote files specified by the user.
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.