Remote vanilla PDB (over TCP sockets) done right: no extras, proper handling around connection failures and CI. Based on pdbx.
- Free software: BSD license
To open a remote PDB on first available port:
from remote_pdb import set_trace set_trace() # you'll see the port number in the logs
To use some specific host/port:
from remote_pdb import RemotePdb RemotePdb('127.0.0.1', 4444).set_trace()
To connect just run
telnet 127.0.0.1 4444. When you are finished
debugging, either exit the debugger, or press Control-], then Control-d.
Alternately, one can connect with NetCat:
nc -C 127.0.0.1 4444 or Socat:
tcp:127.0.0.1:4444 (for line editing and history support). When finished debugging, either exit
the debugger, or press Control-c.
Note about OS X
In certain scenarios (backgrounded processes) OS X will prevent readline to be imported (and readline is a dependency of pdb). A workaround (run this early):
import signal signal.signal(signal.SIGTTOU, signal.SIG_IGN)
Python 2.6, 2.7, 3.2, 3.3 and PyPy are supported.