Question

Je suis en train d'utiliser le débogage inverse de GDB avec une application Django. Je le faire fonctionner dans GDB, mais je ne peux pas le faire tourner en arrière.

Je me suis arrêté mon application Django avec Ctrl-Z, puis entré reverse-next à l'invite de gdb, faire passer le message d'erreur « multi-thread cible ne supporte pas cette commande. »

Est-ce que je fais mal? Est-ce pas possible? Tous les deux?

Était-ce utile?

La solution

Avant de pouvoir utiliser GDB pour le débogage inverse, vous devez dire pour enregistrer votre exécution du programme (il peut le lire) via la commande target record, tel que documenté .

Je ne suis pas sûr que cela va vous aider à déboguer votre application Django si - GDB est bien adapté pour le débogage du code « natif » (de C/C++ compilé), et est pas bien adapté pour le débogage « interprété » code (dans les deux sens avant ou arrière).

Autres conseils

RevDB

https://bitbucket.org/pypy/revdb

https://morepypy.blogspot.co .uk / 2016/07 / inverse pour le débogage-python.html

Ce projet vise à permettre le débogage inverse comme pdb, ce qui est probablement ce que vous voulez sauf si vous le débogage de l'interpréteur Python lui-même.

Il est encore aux premiers stades que de 2017, et vous devez construire à partir de la source.

Comment la question qui ne mentionne pas GDB: Est-il possible de pas en arrière dans pdb?

Enfin, le débogage GDB inverse est assez immature, par exemple ne traite pas avec des extensions AVX Désactiver les fonctions AVX optimisées dans glibc (LD_HWCAP_MASK, /etc/ld.so.nohwcap) pour enregistrement valgrind & gdb , donc je vous recommande fortement d'utiliser à la place rr: https://github.com/mozilla/rr (sur lequel RevDB prétend se inspirer).

C'est une étonnamment bonne question.

Mon premier mouvement serait d'assurer que j'utilisais IPython comme ma coquille pour django et voir si elle est un soutien pdb aiderait dans ce cas. Pdb devrait avoir une interface très similaire à gdb. Si je me souviens, gdb est ce qui est utilisé pour les programmes de débogage C / C ++, tandis que django est en cours d'exécution par un interpréteur Python. L'utilisation PDB est ici:

http: // ericholscher.com/blog/2008/aug/31/using-pdb-python-debugger-django-debugging-series-/

Aussi, vous voudrez peut-être essayer d'utiliser django-extensions, pour l'accès à la vue de débogage werkzeug.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top