coinstac修订版,删除了stdout调用。远程普通PDB(通过TCP套接字)*正确完成*:无附加功能,正确处理连接失败和CI。基于“pdbx<https://pypi.python.org/pypi/pdbx>`。
coinstac-remote-pdb的Python项目详细描述
远程普通pdb(通过tcp套接字)done right:没有额外功能,正确处理连接失败和ci。基于 在pdbx上。
- 自由软件:BSD 2条款许可证
安装
pip install remote-pdb
用法
要在第一个可用端口上打开远程PDB,请执行以下操作:
fromremote_pdbimportset_traceset_trace()# you'll see the port number in the logs
使用特定的主机/端口:
fromremote_pdbimportRemotePdbRemotePdb('127.0.0.1',4444).set_trace()
要连接,只需运行telnet 127.0.0.1 4444。当你完成的时候 调试,要么退出调试器,要么按下控制-],然后控制-d/<
或者,可以连接netcat:nc -C 127.0.0.1 4444或socat:socat readline tcp:127.0.0.1:4444(用于行编辑和历史记录支持)。完成调试时,退出 调试器,或按control-c。
与Python3.7+中的breakpoint()集成
如果您使用的是python 3.7,那么可以使用内置的新breakpoint()来调用 远程PDB。在这种情况下,必须设置以下环境变量:
PYTHONBREAKPOINT=remote_pdb.set_trace
调试器可以如下调用,无需任何导入:
breakpoint()
由于breakpoint()函数不接受任何参数,因此可以使用环境变量 指定服务器应侦听的主机和端口。例如,在这样的 要使telnet 127.0.0.1 4444成为正确的连接方式,可以运行:
PYTHONBREAKPOINT=remote_pdb.set_trace REMOTE_PDB_HOST=127.0.0.1 REMOTE_PDB_PORT=4444 python script.py
如果省略REMOTE_PDB_HOST,则将使用默认值127.0.0.1。如果REMOTE_PDB_PORT是 如果省略,则将使用第一个可用端口。连接信息将记录到控制台, 就像调用remote_pdb.set_trace()一样。
有关OS X的说明
在某些情况下(后台进程),os x会阻止readline被导入(readline是pdb的依赖项)。 解决方法(提前运行):
importsignalsignal.signal(signal.SIGTTOU,signal.SIG_IGN)
要求
支持python 2.6、2.7、3.2、3.3和pypy。
类似项目
更改日志
1.3.0(2019-03-13)
- 对python 3.8的breakpoint()的文档支持。
- 添加了通过REMOTE_PDB_HOST/^{tt9}设置套接字侦听主机/端口的支持$ 环境变量。马修·威尔克斯在#14中撰稿。
- 去掉了在socket周围使用rw文件包装器(原来socket的makefile在python 3.6和 稍后-output is discarded)。贡献于#13。
1.2.0(2015-09-26)
- 始终打印/记录侦听地址。
1.1.3(2015-07-06)
- 更正了默认帧跟踪起始位置。
1.1.2(2015-07-06)
- 小型自述文件更新。
1.1.1(2015-07-06)
- 删除伪造的remote_pdb控制台脚本。
1.1.0(2015-06-21)
- 修复了在python 3和windows上运行时的缓冲问题。
1.0.0(2015-06-15)
- 增加了对pdb++的支持。
0.2.1(2014-03-07)
- pypi上的第一个版本。