PDB不会在多线程代码中的断点处停止

问题描述

我正在使用多线程代码,并且PDB不会在手动设置的断点处停止:

(pdb) b filename:lineno
(pdb) c  # Runs without stopping

原因可能是什么?

解决方法

截至2020年9月,Python的pdb调试器不支持多线程。

尝试从pdb开始的地方中断另一个线程,将跳过断点。这是由于当前使用sys.settrace()的实现是特定于线程的。

除了其他多线程功能外,还有一个ticket用于实现此功能。

当前,唯一的选择是在正在调试的同一线程上pdb.set_trace()

,

例如,使用{.1 pdb

https://pypi.org/project/web-pdb/