Search code examples
pythondebuggingpdb

PDB doesn't stop on breakpoint in multithreaded code


I'm using multi-threaded code and PDB doesn't stop on manually set breakpoints:

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

What could be the reason why?


Solution

  • As of September 2020, Python's pdb debugger does not support multi-threading.

    Attempting to break on a different thread from where pdb started, will skip the breakpoints. This is due to the current implementation using sys.settrace() which is thread-specific.

    There's a ticket for implementing this functionality among other multi-threading additions.

    Currently, the only option is to pdb.set_trace() on the same thread being debugged.