2010-02-24 4 views

Répondre

41

type M-x cd pour changer le répertoire à l'emplacement du programme que vous souhaitez déboguer. Type M-x pdb. Vous serez invité avec Run pdb (like this): pdb. Entrez le nom du programme (par exemple test.py). À l'invite (Pdb), tapez help pour en savoir plus sur l'utilisation de pdb.

Vous pouvez mettre

import pdb 
pdb.set_trace() 

à l'intérieur de votre programme (par exemple test.py). Tapez maintenant M-x shell pour obtenir une invite de shell. Lorsque vous exécutez votre programme, vous serez déversé dans pdb au point où pdb.set_trace() est exécuté.

+0

L'utilisation de pdbtrack (via M-x shell) est probablement une meilleure solution. Il est beaucoup plus facile de contrôler les répertoires et les environnements de cette façon. –

+8

@matt avec Mx pdb vous pouvez définir des points de rupture dans les fichiers source et un curseur montrera la position actuelle de l'exécution que vous traversez: http://twistedmatrix.com/documents/current/core/howto/debug-with-emacs .html –

+0

Un tutoriel graphique peut être trouvée ici: http://sunnyeves.blogspot.com/2011/04/debugging-python-on-emacs-ide.html – gt6989b

19

Pour moi, il me fallait remplacer la valeur par défaut "pdb" avec

python -m pdb myscript.py 
7

Le paquet realgud (disponible à partir de Melpa) soutient l'APB (parmi un gazillion autres débogueurs), et a une foule de fonctionnalités soignées qui Le PDB d'Emac n'a pas.

Celui que je préfère est le mode shortkeys. Une fois que vous commencez le débogage d'un programme, vous pouvez appuyer sur n, s, etc. c droit dans la fenêtre source, au lieu d'avoir à taper ces commandes dans le tampon PDB. Il prend également en charge les raccourcis clavier de type Visual-Studio avec les touches de fonction (, f11, f5, etc.). Après l'installation de RealGUD, vous devez exécuter M-x load-feature realgud pour le charger, et vous pouvez lancer pdb avec M-x realgud:pdb.

+2

Je devrais ajouter que j'ai un petit conflit d'intérêts. J'ai trouvé le paquet tellement soigné que j'ai commencé à le pirater, et maintenant je suis devenu un co-mainteneur. –

Questions connexes