pyOCD vs Ruby debug
pyOCD
pyocd.ioRuby debug
github.comSide by side
| Figure | pyOCD | Ruby debug |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Debuggers | 8.6 (#3) | 7.3 (#20) |
| Purpose | pyOCD is a Python based tool and API for debugging, programming, and exploring Arm Cortex microcontrollers. | The library provides debugging functionality for Ruby (MRI) 2.7 and later. |
| Security limitation | Unlocking a locked device can require a mass erase and erases all data on the chip. | The README warns that debugger-to-debuggee messages are not encrypted and advises care when using remote debugging. |
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.
Ruby debug
Ruby debug is a free, BSD-2-Clause open-source debugger for Ruby MRI 2.7 and later, delivered for Linux and self-hosted use. Its console evaluates Ruby expressions, inspects program state, controls execution, sets conditional and exception breakpoints, and enables tracing. The debugger can record execution and replay it by stepping backward through the log. Remote sessions work over UNIX domain sockets or TCP/IP, allowing a console to attach to a running program. An IRB console adds autocompletion, multiline input, and commands including `show_source` and `show_doc`. The `rdbg` command launches Ruby scripts and commands such as Rails, Rake, and RSpec under debugging. Frontends are described for VS Code and Chrome DevTools; VS Code requires the vscode-rdbg extension. Installation uses `gem install debug` or a Gemfile entry. The project reports no performance penalty when not stepping and with no breakpoints set. It warns that remote messages are unencrypted and that `debug/open_nonstop` can expose access without stopping the program.