Skip to main content

python-debugpy

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

Datos de origen

Repositorio
EKKOLearnAI/ekko-studio
Última actividad en el origen
28 de agosto de 2026 a las 12:50
Idioma detectado de SKILL.md
inglés
Estrellas
11.599
Forks
1438

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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.
Ver en GitHub