Skip to main content

A lightweight distributed debugger built on top of ipdb.

Project description

mpdb

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. The dpdb package name on PyPI was already taken, so it has been renamed to mpdb. Both import mpdb and import dpdb are supported with identical functionality.

Release Notes

  • 1.2.1: improve default web header description and link rendering.
    • mpdb now sets a default web header description on first import only, avoiding overrides when users have already called set_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 both title and subtitle.
    • dpdb now sets its default title via set_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 /status API now includes title and subtitle fields when set.
    • The web UI dynamically updates the header text from the backend status response.
    • dpdb package calls set_description("DPDB Web Debugger") automatically on import.
  • 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_rankrank, dpdb_world_sizeworld_size) renamed for consistency.
    • Demo files and test files renamed to mpdb.
    • localStorage keys in web UI updated to mpdb_* prefix.
    • Prompt updated to [mpdb]>>>.
  • 1.1.0: rename from dpdb to mpdb.
    • PyPI package name dpdb was already taken, renamed to mpdb (Multiprocess PDB).
    • Full backward compatibility: both import mpdb and import dpdb work identically.
    • pip install mpdb is the recommended installation method.
  • 1.0.0: first public release version.
    • single-process debugging
    • distributed command broadcast
    • file-based synchronization for non-torch.distributed scenarios
    • a built-in web UI
    • switching between web and terminal modes during a session

Install

Recommended (PyPI):

pip install mpdb

Optional (GitHub):

pip install git+https://github.com/zzqq2199/mpdb.git

Quick Start

import mpdb

def train():
    for step in range(10):
        if step == 5:
            mpdb.set_trace()

Run a script directly:

python -m mpdb your_script.py

Demo

The 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 torch

There is also a helper launcher for the torch demo:

bash demo/launch_mpdb.sh

Notes

  • torch is optional and only required when you use sync_method='torch'.
  • The web UI template is packaged with the wheel and works with pip install mpdb.
  • Both import mpdb and import dpdb are supported and behave identically.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mpdb-1.2.1.tar.gz (33.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mpdb-1.2.1-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file mpdb-1.2.1.tar.gz.

File metadata

  • Download URL: mpdb-1.2.1.tar.gz
  • Upload date:
  • Size: 33.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for mpdb-1.2.1.tar.gz
Algorithm Hash digest
SHA256 98957be5a04fb3448521fc48b9b2b8dba1269f700edc2fe607fc5503816c7a3d
MD5 b8f20017300954e4386e060aa51d1926
BLAKE2b-256 5e381dc1712456e5226aeeff7da4193668964d62f3075ecfc67a7105289185ba

See more details on using hashes here.

File details

Details for the file mpdb-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: mpdb-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for mpdb-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8e9df6106f4e0d5f72b080fd4a293f240913402e955397dec32d06830213e283
MD5 b7808f767a2325b75321075f549ad6cc
BLAKE2b-256 951c230608537bcafb7093f2abbd50933c7ce4338250c4ed8602338dca7bf630

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page