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

PDB doesn't stop on breakpoint in multithreaded code

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

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

可能是什么原因?

截至 2020 年 9 月,Python 的 pdb 调试器不支持 multi-threading。

尝试在 pdb 启动的不同线程上中断,将跳过断点。这是由于当前使用 sys.settrace() 的实现,即 thread-specific.

有一个 ticket 用于实现此功能以及其他 multi-threading 添加。

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

而不是 pdb 使用例如web-pdb.

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