What problem does it solve? Diagnosing why Python code fails is hard when tracebacks alone don't reveal wrong values, when tests hang under pytest-xdist, or when long-running processes like gateways and daemons misbehave and cannot be restarted. This Skill provides concrete recipes for interactive debugging with pdb, post-mortem analysis, and remote debugging of running processes via debugpy and remote-pdb. ## Core Features & Use Cases - Local pdb debugging: Insert breakpoint() for an interactive REPL, launch scripts with python -m pdb, or drop into pdb on pytest failures with --pdb and -p no:xdist. - Post-mortem inspection: Catch exceptions and inspect locals at the crash site using pdb.post_mortem or python -m pdb -c continue. - Remote debugging: Attach to already-running processes (gateways, daemons, subprocess workers) using debugpy's DAP protocol or the simpler remote-pdb over netcat. - Use Case: A VoiceOS gateway subprocess deadlocks on an async handler. Add remote_pdb.set_trace() at the handler entry, trigger the request, connect with nc 127.0.0.1 4444, and inspect the suspended frame and pending asyncio tasks. ## Quick Start Add a breakpoint() call at the suspect line in my Python file and show me how to inspect variables when execution pauses there.