pdb/winpdb/pydevd/pycharm的跨调试器内联调试跟踪点
dbghelper的Python项目详细描述
在支持多个调试器的代码中手动插入跟踪点的方便方法
importdbg;dbg.D()
替代:
importpdb;pdb.set_trace()
这支持多个调试器;当前pdb (或Pdb++如果已安装),winpdb,和 pydevd(用于 PyDev和PyCharm)。
选择调试器
可以通过设置环境变量pydbg来选择所需的调试器。以下是有效值:
- pydevd或pycharm将在本地(如果在调试模式下运行)使用pydevd,如果不在,则在远程使用pydevd
- pydevd_remote或pycharm_remote将远程使用pydevd
- pydevd_local或pycharm_local将在本地使用pydevd,如果不在调试模式下运行则发出警告
- winpdb将使用winpdb
- pdb将使用pdb(默认值)
使用环境变量可以在导入时确定调试器库的导入。
插入跟踪点
调用dbg.D()在代码中插入跟踪点;当该行代码 已执行,准备执行以下行。
线程安全版本dbg.tsD()``is also supported. This is only different when using ``pdb;在这种情况下是多个 具有跟踪点的线程(例如,在web服务器中)在附加多个调试会话时可能会导致混淆。 到同一个控制台。tsD实现使用一个锁,一次只允许一个调试会话使用控制台; 在调试交互完成之前,其他会话不允许锁定(例如键入c继续)。
调试器的参数
有些调试器具有可以使用环境变量或在运行时设置的参数。
pydevd实现将使用环境变量PYDEVD_HOST的值作为主机名和 PYDEVD_PORT默认为远程连接时的端口。这些也可以通过设置来调整 ^运行时为{tt16}$和dbg.pydevd_args.port。