The first Delphi debugger built for autonomous agents. Drive it from an AI, the CLI, a webserver / webapp, or a GUI — same wire protocol every layer. Replaces PAServer with hardware breakpoints, recursive RTTI inspection, and cross-process UI control so an agent can reproduce a bug end-to-end without a human at the keyboard.
PAServer was built for the IDE. rdbg is built for everything else — CI, agents, headless boxes, and the command line.
An autonomous AI coding agent reproduces bugs, sets BPs, drives the UI, inspects Delphi state, AND navigates source via DelphiLSP — go-to-definition, hover, find-references, completion — all through the same MCP plugin. Static analysis and runtime debug share one process, so future lsp_hover calls can fold in last-observed runtime values. Agent guide →
Up to four DR-slot hardware breakpoints alongside classic 0xCC patching. Both speak the same wire.
Open a .dproj, hit Go. The GUI handles the daemon, breakpoints, source tabs, and stepping.
Walk a TObject across process boundaries — class chain, published & public properties with typed values.
Spawn the daemon locally, tunnel it over SSH, or attach to one already running. The GUI manages the lifecycle.
MAP-driven walker resolves unit.pas:line symbol+offset for both Delphi raises and raw OS exceptions. DLL frames resolve via Microsoft public PDBs auto-fetched from msdl.microsoft.com.
rdbg's wire protocol means an AI agent can drive it the same way a human in the GUI can. Set breakpoints, walk the stack, decode an object — from a script, a webapp, a CI job, or an autonomous coding loop.
The daemon stays alive across reconnects, so headless boxes can host long-running debug sessions for whatever tool you point at them next.
Try it in 5 minutes# Drive rdbg from anything that speaks TCP + JSON
$ rdbgd64 --listen 127.0.0.1:5902 # Win64 targets
$ rdbgd32 --listen 127.0.0.1:5903 # Win32 targets
$ rdbgc debug 127.0.0.1:5902 myapp.exe MyApp.dpr:128
# Or use the GUI: open .dproj, hit Go
$ rdbgui myproject.dproj
# Or the wire directly:
{"method":"set_breakpoint",
"params":{"file":"MyApp.pas","line":42}}
{"method":"inspect_object",
"params":{"address":"0x023f9a0c1080",
"max_depth":3}}
v0.19.34 is the latest release. Here's what just landed and what's next.
12 MCP tools backed by Embarcadero's DelphiLSP.exe: definition / declaration / implementation / hover / references / completion / signature_help / document_symbols / workspace_symbol / diagnostics, plus aggregator and project-lifecycle tools. .delphilsp.json autogen from any .dproj means zero IDE-config friction. Capability-gated per Delphi version (11.3 → 13.1).
--lsp mode for VS Code / NeovimLaunch rdbg-mcp.exe --lsp and the bridge becomes a transparent Delphi LSP server — any LSP client gets the same project autogen, multi-version DelphiLSP discovery, and license-error translation Claude Code users get. RDBG_LSP_PROJECT seeds the active project; everything after initialize forwards verbatim.
Extend HW BPs into r/w watches via the DR slots — set_breakpoint kind:"hw" watch:"rw" length:4 — so you can break on writes to a struct field, not just executions of a line.
rdbg is open-source, scriptable, and ready for your remote Delphi workflow today.