mpdb (Multiprocess PDB) is a lightweight distributed debugger built on top of ipdb.
Repository: https://github.com/zzqq2199/mpdb
Note: This project was formerly known as
dpdb. Thedpdbpackage name on PyPI was already taken, so it has been renamed tompdb. Bothimport mpdbandimport dpdbare supported with identical functionality.
- 1.2.1: improve default web header description and link rendering.
mpdbnow sets a default web header description on first import only, avoiding overrides when users have already calledset_description(...).- Default subtitle is updated to an official site link:
https://github.com/zzqq2199/mpdb. - Web UI header rendering now supports safe
<a>links in bothtitleandsubtitle. dpdbnow sets its default title viaset_description(title="DPDB Web Debugger").- Minor backend robustness updates: add typing for description state, guard
pkgutil.get_data(...)when__package__is empty, and only invoke saved signal handlers when callable.
- 1.2.0: add
set_description()API for customizing web UI header.- New
mpdb.web_pdb.set_description(title, subtitle)function to override the default "MPDB Web Debugger" title and "by zhouquan" subtitle at runtime. - The
/statusAPI now includestitleandsubtitlefields when set. - The web UI dynamically updates the header text from the backend status response.
dpdbpackage callsset_description("DPDB Web Debugger")automatically on import.
- New
- 1.1.2: update the README documentation.
- Add the repository link for easier source code access.
- Clarify installation options: PyPI as recommended, GitHub as optional.
- 1.1.1: rename internal identifiers and assets to
mpdb.- All internal identifiers (
dpdb_rank→rank,dpdb_world_size→world_size) renamed for consistency. - Demo files and test files renamed to
mpdb. localStoragekeys in web UI updated tompdb_*prefix.- Prompt updated to
[mpdb]>>>.
- All internal identifiers (
- 1.1.0: rename from
dpdbtompdb.- PyPI package name
dpdbwas already taken, renamed tompdb(Multiprocess PDB). - Full backward compatibility: both
import mpdbandimport dpdbwork identically. pip install mpdbis the recommended installation method.
- PyPI package name
- 1.0.0: first public release version.
- single-process debugging
- distributed command broadcast
- file-based synchronization for non-
torch.distributedscenarios - a built-in web UI
- switching between web and terminal modes during a session
Recommended (PyPI):
pip install mpdbOptional (GitHub):
pip install git+https://github.com/zzqq2199/mpdb.gitimport mpdb
def train():
for step in range(10):
if step == 5:
mpdb.set_trace()Run a script directly:
python -m mpdb your_script.pyThe standalone repository ships with runnable examples under demo/:
python demo/demo_mpdb.py --mode single
python demo/demo_mpdb.py --mode file
python demo/demo_mpdb.py --mode torchThere is also a helper launcher for the torch demo:
bash demo/launch_mpdb.shtorchis optional and only required when you usesync_method='torch'.- The web UI template is packaged with the wheel and works with
pip install mpdb. - Both
import mpdbandimport dpdbare supported and behave identically.