Install & Compatibility
Where this runs
tested against v0.12.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.152s · 27.1MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 2.3s · import 0.128s · 28MB
26MB installed
● package 26MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Pdb
✓ from pdbpp import Pdb
✗ import pdb; pdb.set_trace()
set_trace
✓ from pdbpp import set_trace
✗ import pdb; pdb.set_trace()
break_on_setattr
✓ from pdbpp import break_on_setattr
Install `pdbpp`, then simply use `import pdb; pdb.set_trace()` anywhere in your code. When execution reaches this line, a `Pdb++` interactive prompt will appear, offering advanced debugging features. You can then use commands like `n` (next), `s` (step), `c` (continue), `l` (list), and `sticky`.
import pdb
def my_function(a, b):
result = a + b
pdb.set_trace() # Execution will pause here
return result
if __name__ == '__main__':
print(my_function(5, 3))
pdb --version
Debug
Known issues
gotchaLeaving `pdb.set_trace()` calls in production code will halt program execution unexpectedly. Always remove or comment out breakpoints before deploying.fixManually remove `pdb.set_trace()` calls or use conditional breakpoints. Many teams search for 'pdb.' before commits.
affects: All versions
gotchapdb++'s 'smart command parsing' prioritizes local variables over debugger commands if they share the same name (e.g., a variable `c` vs. the `continue` command).fixTo force a command when ambiguity exists, prefix it with `!!` (e.g., `!!c` to execute `continue`).
affects: All versions
breakingOlder versions of `pdbpp` experienced compatibility issues with `python -m pdb` when running on Python 3.11 and newer versions.fixUpgrade `pdbpp` to version 0.12.1 or higher to ensure full compatibility with Python 3.11+ for `python -m pdb` usage.
affects: <=0.12.0 (specifically affected 3.11+)
gotchaWhen `pdbpp` is used in remote debugging setups (e.g., with `remote-pdb`), advanced features like 'sticky mode' and TAB completion may not function correctly due to terminal environment differences.fixBe aware of potential feature limitations in non-local terminal environments. Direct terminal interaction offers the best experience.
affects: All versions
gotchaSome online resources might suggest that `pdbpp` is unmaintained. This is often a misunderstanding; while `pdbp` (a separate project) builds upon `pdbpp` and offers its own enhancements, `pdbpp` itself continues to be actively maintained with recent releases and GitHub activity.fixRefer to the official PyPI page and GitHub repository for the latest maintenance status and release information.
affects: N/A (confusion-related)
Upgrade
Version history
0.12.1latest on PyPI · released Feb 23, 2026
Audit
Dependencies
fancycompleterrequiredProvides colorful TAB completion for Python expressions.
PygmentsoptionalEnables optional syntax highlighting for code listings and sticky mode.
wmctrloptionalRequired for the 'exec_if_unfocused' configuration option, which executes a shell command when the debugger prompt starts and the terminal is unfocused.