Ray*_*Ray 21 python debugging pdb
使用python 3.5.1
当我使用python调试器模块运行脚本时:
[home]# python -m pdb myscript.py
Run Code Online (Sandbox Code Playgroud)
这将启动调试会话:
> /somepath/to/myscript.py(1)<module>()
-> import os
(Pdb)
Run Code Online (Sandbox Code Playgroud)
如果我想从调试会话中进入交互式终端,我可以发出interact命令:
(Pdb) interact
*interactive*
>>>
Run Code Online (Sandbox Code Playgroud)
现在我可以用个代码交互,就好像我是在一个运行Python交互模式,能够访问任何功能或变量在我输入的时间调试器中运行该脚本的范围interact模式.
当我发出退出交互模式的命令(继续调试)时,它会终止整个调试会话:
>>> exit()
The program exited via sys.exit(). Exit status: None
....long nasty stack trace here....
[home]#
Run Code Online (Sandbox Code Playgroud)
我也试过quit(),它也终止了调试器.
如何在interact不终止整个调试会话的情况下退出模式?这甚至可能吗?
理想情况下,我想在我离开的时候返回调试模式,这样我就可以继续单步调试代码了.
Luk*_*raf 23
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
...
Run Code Online (Sandbox Code Playgroud)
如果您使用ipdb,并且在上Windows/Windows10,则应使用Cntrl-Z> Return退出交互式外壳。
经测试,在ipython/python 3.5与ipdb和pdb
https://github.com/jupyter/notebook/issues/3603#issuecomment-747392494
from pandas.io.clipboard import copy; copy("\x04")
将 Ctrl-D 复制到剪贴板,然后您可以粘贴并输入。