What problem does it solve? Diagnosing why Python code misbehaves often requires more than print statements or tracebacks, especially for failing tests, long-running daemons, and subprocesses that cannot be restarted. This Skill provides concrete recipes for interactive debugging with pdb and remote debugging with debugpy or remote-pdb. ## Core Features & Use Cases - Local pdb debugging: Insert breakpoint() calls, launch scripts under python -m pdb, and use the full pdb command set (step, inspect, conditional breakpoints, post-mortem). - Test debugging: Run pytest with --pdb, --trace, or --showlocals to trap failures, with guidance on bypassing output-capturing test wrappers. - Remote and attach debugging: Use debugpy to listen for DAP clients, attach to running PIDs, or use remote-pdb over netcat for terminal-friendly sessions in daemons and subprocesses. - Use Case: A gateway process misbehaves in production-like conditions and cannot be restarted; inject remote_pdb.set_trace() at the suspect handler, trigger the code path, and connect via nc to inspect the live stack and locals. ## Quick Start Add breakpoint() above the failing line in my Python file and walk me through inspecting the variables when the pdb prompt appears.