Je appelle python -m pdb myapp.py code>, lorsqu'une exception se déclenche, et je serais normalement renvoyé à l'interprète PDB pour enquêter sur le problème. Cependant, cette exception est lancée après que j'ai appelé via
cureses.wrapper () code> et entré le mode de malédiction, rendant l'interprète PDB inutile. Comment puis-je travailler autour de cela? P>
3 Réponses :
Ne pas connaître Python, cela peut ne pas être exactement ce que vous voulez. Mais apparemment, WinPDB peut s'attacher à un script - tout comme GDB peut sur un processus en cours d'exécution (IIUC). p>
http://winpdb.org/docs/launch-time/ P >
Ne soyez pas induire en erreur par le nom, c'est une plate-forme indépendante. P>
Bonne suggestion. Vous me battez à cela. Ce serait la bonne façon d'aller sur ce problème. Également utile pour les processus Guis et Daemon.
Je suppose que il est possible de joindre à l'aide de la PDB de la bibliothèque principale?
Je ne le pense pas. Vous devrez utiliser WinPDB sur le «client» et le «serveur».
James` La réponse est une bonne et je l'ai avancée, mais j'envisagerais également d'essayer de scinder les couches de la logique et de la présentation de mon programme. Gardez la partie des malédictions une couche mince sur la base d'une bibliothèque et écrivez un simple pilote qui invoque les routines correctes pour recréer l'erreur. Ensuite, vous pouvez plonger et faire ce qui est nécessaire.
Une autre façon dont je peux penser, c'est créer une fonction appelée apparemment, ceci est similaire à ce qui est fait avec la fonction débogage code> ou quelque chose qui vous renvoie dans l'écran régulier et invoque PDB. Alors tenez-le juste avant le code qui soulève l'exception et exécutez votre programme. Quelque chose comme p>
cureses.wrapper code> fonction. Il est mentionné brièvement chez http://www.amk.ca/python/howto/curses/ a>. p> p>
Une suggestion judicieuse de garder la logique de la malédiction séparée et merci pour le pointeur CURSESE.WRAPPER code>.
utiliser pyclewn p>
Vous pouvez utiliser pyclewn avec Vim. Ou utilisez le clone PDB, le noyau de pyclewn c'est bon, c'est comme gdb, peut déboguer à distance p>
Pyclewn n'est plus supporté en fonction de ce lien.
Je pense qu'il pourrait y avoir une infomation utile wiki.python.org/moin/pythondebuggers
Je me suis riant du titre de ceci. Ouais, le débogage et la maudire semblent aller ensemble dans mon esprit.