В 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