Skip to main content

python-debugpy

Debug Python with pdb, breakpoint(), post-mortem inspection, and debugpy remote or headless attach.

Informations de source

Dépôt
EKKOLearnAI/ekko-studio
Dernière activité de la source
28 août 2026 à 12:50
Langue détectée de SKILL.md
anglais
Étoiles
11 647
Forks
1 446

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
python-debugpy
description
Debug Python with pdb, breakpoint(), post-mortem inspection, and debugpy remote or headless attach.
metadata
{"keywords":["debugpy","python debugger","pdb","remote python debugging"]}
# Python Debugging Use when Python code needs interactive debugging: hidden locals, confusing state mutation, failing tests, subprocesses, long-running services, or remote attach. Choose the smallest debugger that reaches the bad frame: - `breakpoint()`: local code where source edits are acceptable. - `python3 -m pdb`: launch from the beginning without editing source. - `python3 -m pdb -c continue`: stop at an unhandled exception. - `debugpy`: remote/headless processes, DAP clients, an existing PID, or startup races. ## Commands ```bash python3 -m pdb path/to/script.py arg1 python3 -m pdb -c continue path/to/script.py python3 -c "import debugpy" || python3 -m pip install debugpy python3 -m debugpy --listen 127.0.0.1:5678 --wait-for-client path/to/script.py python3 -m debugpy --listen 127.0.0.1:5678 --wait-for-client -m package.module python3 -m debugpy --listen 127.0.0.1:5678 --pid <pid> ``` Source-edit attach: ```python import debugpy debugpy.listen(("127.0.0.1", 5678)) debugpy.wait_for_client() debugpy.breakpoint() ``` Post-mortem inspection: ```python import pdb import sys try: run() except Exception: pdb.post_mortem(sys.exc_info()[2]) raise ``` ## pdb commands - Flow: `n`, `s`, `r`, `c`, `q`. - Stack and source: `w`, `u`, `d`, `a`, `l`, `ll`. - Values: `p expr`, `pp expr`, `display expr`. - Breakpoints: `b file.py:42`, `b func`, `b file.py:42, condition`, `cl <num>`. - Evaluate or mutate: `!statement`; full REPL: `interact`. ## Rules - Reproduce with the smallest command or test first. - Disable parallel test workers for pdb; worker pools usually break interactive stdin. - Keep `debugpy` in the active environment. Do not add it as a project dependency unless the project needs it. - Bind debug servers to `127.0.0.1`; expose them only on an isolated network or through a secure tunnel. - Treat PID attach as process injection. Avoid security-sensitive or production targets unless explicitly approved. - On Linux, check ptrace and container privileges before changing a target when PID attach fails. - Before committing, run `rg -n 'breakpoint\\(|pdb\\.set_trace|debugpy\\.' --type py` and remove accidental breakpoints. - Rerun the normal project test gate without the debugger.
Voir sur GitHub