2017-03-28 1 views
1

J'aime utiliser ipdb pour déboguer mon code. Je sais que nous pourrions arrêter le code sur un fichier sur une ligne spécifique avec b(reak) file:lineno. Cette commande définira un point d'arrêt à file à la ligne 'non'.point d'arrêt sur tous les fichiers d'un certain répertoire

En fait, j'ai inséré import ipdb; ipdb.set_trace() dans un fichier spécifique. Chaque fois que j'utilise la commande s(tep), elle s'exécute et entre dans les fonctions. Mon problème est que c'est trop lent avant de voir ce que je veux voir. Le stacktrace m'a montré des lignes que je ne veux pas nécessairement voir. Ensuite, je pensais mettre un point d'arrêt sur tous les fichiers d'un certain répertoire, c'est-à-dire, b mydirectory/**. Par conséquent, chaque fois que j'exécuterai c, il me montrera toutes les lignes que je veux voir. Cependant, je ne peux pas exécuter une telle commande (c'est-à-dire, b mydirectory/**). Quelqu'un pourrait-il avoir une solution à ce problème?

Merci!

P.S. Le picture suivant montre la tonne de ces fichiers non pertinents que je ne veux pas voir. En fait, il est normal de voir ces fichiers, car je travaille sur un projet django.

S'il vous plaît me dire si la question ne sait pas

+0

Je n'ai pas la réponse à votre question, mais je vous suggère fortement d'obtenir un IDE approprié qui permet le débogage d'exécution. Personnellement, j'aime beaucoup pycharm, mais je ne l'ai pas utilisé avec django. Comprenez que le temps que vous prenez pour configurer le projet dans l'IDE est généralement récupéré assez rapidement dans la vitesse de développement globale – Eric

+1

@Eric J'ai déjà utilisé pycharm et clairement c'est un IDE limité. Je ne veux pas utiliser ça. J'utilise actuellement vim, et c'est génial pour moi. –

Répondre

1
import pdb; pdb.Pdb(skip=['mydirectory.*']).set_trace() 

monrépertoire doivent être un module python, voici plus d'informations de la documentaion

L'argument de saut, si elle est donnée, doit être un itérable du module glob-style modèles de nom. Le débogueur n'entrera pas dans les cadres qui proviennent dans un module qui correspond à l'un de ces modèles. [1]

source: https://docs.python.org/2/library/pdb.html#pdb.Pdb