2016-04-29 4 views
7

Python 3.5.1Im Python-Debugger pdb, wie verlassen Sie den interaktiven Modus, ohne die Debug-Sitzung beendet

Wenn ich ein Skript mit dem Python-Debugger Modul ausführen:

[home]# python -m pdb myscript.py 

Dies ist ein startet Debug-Sitzung:

> /somepath/to/myscript.py(1)<module>() 
    -> import os 
    (Pdb) 

Wenn ich ein interaktives Terminal aus der Debug-Sitzung eingeben möchten kann ich den interact Befehl ausgeben:

(Pdb) interact 
*interactive* 
>>> 

Jetzt kann ich mit th Code interagieren, als ob ich in einem laufenden Python interaktiven Modus war, mit Zugriff auf alle Funktionen oder Variablen im Rahmen des Skripts in dem Debugger zu dem Zeitpunkt läuft ich interact Modus.

Wenn ich den Befehl geben Sie den interaktiven Modus zu beenden (fortzusetzen Debugging) tötet die gesamte Sitzung debug:

>>> exit() 
The program exited via sys.exit(). Exit status: None 
....long nasty stack trace here.... 

[home]# 

ich auch quit() habe versucht, und es endet auch den Debugger.

Wie können Sie den Modus interact beenden, ohne die gesamte Debugsitzung zu beenden? Ist das überhaupt möglich?

Im Idealfall möchte ich an der Stelle, an der ich aufgehört habe, in den Debug-Modus zurückkehren, damit ich weiter durch meinen Code gehen kann.

Antwort

10

ein EOF Senden von Strg + D sollte funktionieren:

$ python -m pdb myscript.py 
> .../myscript.py(1)<module>() 
-> import os 
(Pdb) import code 
(Pdb) code.interact() 
Python 2.7.11 (default, Dec 27 2015, 01:48:39) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
(InteractiveConsole) 
>>> <CTRL-D> 
(Pdb) c 
... 
+3

Bonus-Tipp: 'STRG + D' auch unglaublich praktisch ist, Dutzende von offenen Terminal/SSH-Sitzungen am Ende eines langen Tages der Arbeit für endet: Es wird (in der Regel) Schließen Sie diese Registerkarte sofort in Ihrem Terminalemulator, ** außer **, wenn in der Befehlszeile noch ein Befehl mit halber Eingabe oder ein laufendes Programm im Vordergrund vorhanden ist. –

0

Wenn Sie ipdb verwenden und sind auf Windows/Windows10, Sie Cntrl-Z>Return, um aus der interaktiven Shell verwenden sollten .

Geprüft ipython/python 3.5 und ipdb und pdb

Verwandte Themen