pdb/winpdb/pydevd/pycharm的跨调试器内联调试跟踪点

dbghelper的Python项目详细描述


在支持多个调试器的代码中手动插入跟踪点的方便方法

importdbg;dbg.D()

替代:

importpdb;pdb.set_trace()

这支持多个调试器;当前pdb (或Pdb++如果已安装),winpdb,和 pydevd(用于 PyDevPyCharm)。

选择调试器

可以通过设置环境变量pydbg来选择所需的调试器。以下是有效值:

  • pydevdpycharm将在本地(如果在调试模式下运行)使用pydevd,如果不在,则在远程使用pydevd
  • pydevd_remotepycharm_remote将远程使用pydevd
  • pydevd_localpycharm_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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Grails中集成javaapplet   动态设置片段时发生java错误   JavaSpringVelocity模板电子邮件?   SpringHateOAS中java自定义json输出   java wait()和notify()相关问题   正则表达式中的单词边界是什么?   使用外部库将项目部署到glassfish后发生java NoClassDefFoundError   java为什么在这里初始化ListNode两次?   java libGDX移动三维模型   java使线程等待另一个线程的执行   正则表达式如何在java中使用正则表达式解析给定字符串   java SWT ScrolledComposite在32768像素后切断画布生成的图像