2010-04-29 9 views
8

Beim Debuggen meiner Django-Apps verwende ich pdb zum interaktiven Debuggen mit pdb.set_trace().Gibt es trotzdem pdb und Mac Terminal um gut zu spielen?

Wenn ich jedoch eine Datei ändere, startet der lokale Django-Webserver neu und dann kann ich nicht sehen, was ich im Terminal tippe, bis ich reset eintippe.

Gibt es trotzdem, dass dies automatisch geschieht? Es kann wirklich nervig sein, den Runserver abzubrechen und ihn ständig neu zu starten und neu zu starten. Mir wurde gesagt, dass es nicht auf anderen Betriebssystemen (Ubuntu) passiert, also gibt es das sowieso, damit es nicht auf dem Mac passiert? (Ich benutze Snow Leopard).

Antwort

8

OK - das funktioniert für mich habe ich eine ~/.pdbrc und

hinzugefügt

import os
os.system ("stty sane")

jedes Mal pdb Jetzt Wird ausgeführt, werden die Zeileneinstellungen wieder auf "gesund" gesetzt.

Wenn ich auf das Terminal fallen, dann muss ich es immer noch manuell tun - aber es löst das Beenden von runserver und die ganze Zeit zurückgesetzt.

1

Versuchen Sie [q] uit pdb, bevor Sie Änderungen an einer Datei speichern. Auf diese Weise wird die Konsole nicht an Ihnen hängen bleiben, sondern nur für diesen einen Lauf von pdb.set_trace().

Sie müssen immer noch auf die alte^C + reset + ./manage.py runserver zurückgreifen, wenn Sie vergessen, pdb zu beenden. Eine Sache, die den Reset ein wenig weniger störend machen kann, ist, den Reset und den Runserver auf eine Zeile zu setzen. Auf diese Weise ist der Reset nur eine schnelle ^Rreset oder nach oben weg.

[ ... ] 
Development server is running at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
^C$ reset && ./manage.py runserver 
1

Das Beste, was ich gefunden habe, ist ein Reset-innen pdb tun wie so:

import os; os.system ("reset");

Verwandte Themen