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第三方库


热门话题
java如何创建Restful服务并将其部署到OSGi容器?   java如何获取用户在EditText中输入的时间并从中扣除5小时30分钟?   java用户无法注销firebase 安卓   java Undertow始终将字符集添加到ContentType头,即使它不是文本MIME类型   java LocalBroadcastManager未正确接收消息   foreach在Java中有没有比For循环更好的方法可以灵活地遍历集合?   java如何在安卓上移动球   在OSGi下的Log4j中使所有记录器异步时,java ClassNotFoundException   java未知输入字节长度转换为int   java测试工厂在使用前缀命名时抛出NPE   对象的副本(JAVA)   java SP20310:无法打开文件。sql   java Spring安全性仅为一条路径添加安全性   java在idea中获取菱形运算符的编译错误