В pdb отладчика Python как выйти из интерактивного режима без завершения сеанса отладки

использование python 3.5.1

когда я запускаю скрипт с помощью модуля отладчика python:

  [home]# python -m pdb myscript.py

это запускает сеанс отладки:

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

если я хочу войти в интерактивный терминал из сеанса отладки, я могу выпустить :

(Pdb) interact
*interactive*
>>>

теперь я могу взаимодействовать с кодом th, как если бы я был в интерактивном режиме python, с доступом к любым функциям или переменной в области сценария, запущенного в отладчике на когда я вошел interact режим.

когда я выдаю команду для выхода из интерактивного режима (для продолжения отладки), она убивает весь сеанс отладки:

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

[home]#

Я также пробовал quit() и он также завершает работу отладчика.

как вы можете выйти из interact режим без завершения всего сеанса отладки? Это вообще возможно?

в идеале, я хотел бы вернуться в режим отладки в точке, где я остановился, чтобы я мог продолжать шагать через мой код.

2 ответов


отправка EOF при нажатии Ctrl + D должно работать:

$ 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
...

если вы используете ipdb, и Windows/Windows10, вы должны использовать Cntrl-Z>Return, чтобы выйти из интерактивной оболочки.

проверен в ipython/python 3.5 и ipdb и pdb