pdb++
Drop-in replacement for Python's pdb debugger — enhances pdb with syntax highlighting, tab completion, smart command detection, and sticky mode. pdb++ features: automatic activation (just import pdb; pdb.set_trace() uses pdb++ if installed), colorized source display, tab completion for Python expressions, sticky mode (persistent source view as you step), ! prefix for code execution disambiguation, smart command detection (p x works even when x is a pdb command), smart breakpoints with filename:function:condition syntax, fancycompleter integration, and full pdb compatibility. Zero configuration — installs over pdb automatically.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
Local debugger with no network access. The ! prefix executes arbitrary Python — only safe in development environments. Never leave pdb.set_trace() or breakpoint() in production code. pdb++ can display secret values in tab completion and variable inspection — use only on trusted machines.
⚡ Reliability
Best When
Developers already familiar with pdb wanting enhancement without learning new tool — pdb++ activates automatically and improves pdb with zero configuration or workflow changes.
Avoid When
You want visual TUI debugging (use pudb), remote debugging (use debugpy/pudb.remote), or GUI debugging (use VS Code).
Use Cases
- • Agent enhanced pdb — import pdb; pdb.set_trace() — automatic pdb++ activation; agent code uses standard pdb API; pdb++ enhances with colors and completion transparently; no code changes needed after pip install pdbpp; existing breakpoint() calls also use pdb++
- • Agent sticky mode debugging — in pdb++ session: type 'sticky' — source view stays visible while stepping; agent code walkthrough shows current line highlighted in persistent source panel; sticky mode prevents context loss when stepping through many lines
- • Agent expression exploration — (Pdb++) p agent.memory['context']['messages'][-1] — tab completion for deep attribute access; pdb++ completes attribute names and dict keys; agent debugger explores complex nested state without typing full paths
- • Agent conditional breakpoint — (Pdb++) b agent.py:process_message, len(message) > 1000 — conditional breakpoint with expression; agent only breaks when large messages are processed; pdb++ evaluates condition in current scope; standard pdb also supports this but pdb++ makes it easier
- • Agent post-mortem — import pdb; pdb.pm() — drop into pdb++ at last exception; agent run sys.last_traceback for most recent exception; pdb++ colorizes the stack; same as pdb.post_mortem() but shorter; combine with try/except: except Exception: pdb.post_mortem()
Not For
- • Visual TUI debugging — pdb++ is command-line enhanced pdb; for visual TUI use pudb
- • Production code — debuggers add overhead; remove pdb calls before deployment
- • Remote debugging — pdb++ has no built-in remote debugging; use pudb.remote or debugpy for remote
Interface
Authentication
No auth — local debugging tool.
Pricing
pdb++ is BSD licensed. Free for all use.
Agent Metadata
Known Gotchas
- ⚠ pdb++ auto-activates — after pip install pdbpp, ALL pdb.set_trace() and breakpoint() calls use pdb++; agent environments with pdbpp installed behave differently from those without; this is a feature but can surprise team members; uninstall pdbpp to revert to standard pdb
- ⚠ Smart command detection can surprise — pdb++ auto-detects if input is pdb command or Python expression; typing 'list' runs 'll' source listing; typing 'p list' prints list object; typing '!list' forces Python evaluation; agent debugging must use ! prefix for expressions that look like pdb commands
- ⚠ Sticky mode not persistent across restarts — 'sticky' command enables persistent source view for current session; next pdb session starts without sticky; add to ~/.pdbrc: from pdbpp import sticky; sticky() — for automatic sticky mode on every pdb start
- ⚠ Tab completion requires fancycompleter — pdb++ tab completion depends on fancycompleter package; pip install pdbpp installs it as dependency; if fancycompleter is missing, completion falls back to readline; agent development environments should verify fancycompleter is installed
- ⚠ Color support depends on terminal — pdb++ syntax highlighting requires terminal with color support; TERM=dumb or redirected stdout disables colors; agent scripts running pdb via subprocess may not get colors; SSH sessions need TERM=xterm-256color forwarded
- ⚠ pytest --pdb uses pdb++ automatically — pytest integration: pytest --pdb opens pdb++ (if installed) on test failure; agent CI with pytest --pdb flag gets pdb++ without explicit configuration; ensures consistent debugging experience across developer machines with pdbpp installed
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for pdb++.
Scores are editorial opinions as of 2026-03-06.