Debugging et maintenancesource GitHub
Python Debugpy
/SKILLÀ utiliser lorsque le code Python nécessite un débogage interactif : variables locales masquées, modifications d'état complexes, tests échoués, sous-processus, services à exécution longue ou
// contenu du skill
name: python-debugpy
description: Debug Python with pdb, breakpoint(), post-mortem inspection, and debugpy remote attach.
metadata: { "openclaw": { "requires": { "bins": ["python3"] } } }
Python Debugpy
Use when Python code needs interactive debugging: hidden locals, confusing state mutation, failing tests, subprocesses, long-running services, or remote/headless attach.
Pick the smallest debugger that reaches the bad frame.
Choose
breakpoint(): local code, source edits ok, fastest path.python3 -m pdb: no source edit, launch from the beginning.python3 -m pdb -c continue: stop at an unhandled exception.debugpy: remote/headless process, DAP client, already-running PID, or service startup race.
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>For source-edit attach:
py
import debugpy
debugpy.listen(("127.0.0.1", 5678))
debugpy.wait_for_client()
debugpy.breakpoint()For post-mortem:
py
import pdb, sys
try:
run()
except Exception:
pdb.post_mortem(sys.exc_info()[2])
raisepdb
- Flow:
n,s,r,c,q. - Stack/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>. - Mutate/evaluate:
!statement; full REPL:interact.
Rules
- Reproduce with the smallest command/test first.
- Disable parallel test workers for pdb; interactive stdin usually breaks inside worker pools.
- Keep
debugpyin the active env; do not add it as a project dependency unless the project already wants it. - Bind debug servers to
127.0.0.1; do not expose0.0.0.0unless isolated or tunnelled. - Use unique ports for parallel sessions.
- Treat
debugpy --pidas injection; avoid security-sensitive or production targets unless explicitly approved. - If PID attach fails on Linux, check ptrace/container privileges before changing the target.
- Cleanup before commit:
rg -n 'breakpoint\\(|pdb\\.set_trace|debugpy\\.' --type py. - Rerun the normal project test/gate without the debugger.
PYTHONBREAKPOINT=0disablesbreakpoint().- If a process is stuck after debugger detach, confirm it is not still paused at a breakpoint.
// source originale publique
openclaw/openclaw/skills/python-debugpy/SKILL.md
Licence : NOASSERTION. Consultez le dépôt avant toute réutilisation.
Projet indépendant, non affilié à Anthropic. Ce skill reste la propriété de son auteur original.
// similaires